【发布时间】:2020-03-06 20:13:45
【问题描述】:
我使用 paramiko 连接到服务器并尝试切换到另一个用户。但我面临以下错误。
sudo:不存在 tty,也没有指定 askpass 程序
sudo: pam_authenticate: 对话错误
我已经尝试使用“sudo -S”选项,并且还通过命令传递密码。但没有运气。请帮我解决这个问题
我正在尝试从 windows 服务器连接到远程 linux 服务器,所以我无法使用 pexpect,因为它现在不支持 windows
PFB 脚本。
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user, password=pwd)
print("Connected to: ", host)
stdin, stdout, stderr = ssh.exec_command('sudo su test_user')
if stdin:
print("asked for inp: ", stdin)
stdin.write(pwd+"\n")
stdin.flush()
error = ""
output = ""
for err in stderr.readlines():
error = error + err
if error != "":
print("error: ", error)```
【问题讨论】:
-
嗨,马丁,我已经试过了。但是“-S”选项和“get_pty”选项只是让我的脚本挂在那里而不显示任何输出或进度
-
向我们展示您的代码。
-
@Martin,代码已与上述问题一起粘贴。事情是,我能够从腻子中执行“sudo su test_user”。只有通过 paramiko 我有这个问题
-
如果您需要我们的帮助,您需要向我们提供我们要求的信息。我们需要minimal reproducible example。
标签: python-3.x linux paramiko