Python Paramiko:不存在tty,也没有指定askpass程序
Python的新功能: 下面是一段应该在远程主机上循环的代码Python Paramiko:不存在tty,也没有指定askpass程序,python,python-2.7,Python,Python 2.7,Python的新功能: 下面是一段应该在远程主机上循环的代码 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.load_system_host_keys() ssh.connect(host, 22, username, password, timeout=5) stdin, stdout
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.load_system_host_keys()
ssh.connect(host, 22, username, password, timeout=5)
stdin, stdout, stderr = ssh.exec_command('sudo hostname')
我得到:
sudo: no tty present and no askpass program specified
我试过了
stdin, stdout, stderr = ssh.exec_command('sudo -S hostname')
及
但代码永远都在库存中(不起作用)
有什么建议吗?您应该将
sudo
的密码发送到stdin
:
导入paramiko
ssh=paramiko.SSHClient()
ssh.set_缺少_主机_密钥_策略(paramiko.AutoAddPolicy())
ssh.load\u system\u host\u keys()
连接(主机,22,用户名,密码,超时=5)
stdin,stdout,stderr=ssh.exec_命令('sudo hostname',get_pty=True)
stdin.write('password\n')#sudo的密码
stdin.flush()
您的/etc/sudoers文件中是否有requirety
?你可以把它关掉。但是你必须处理密码。我假设您不能以root用户身份登录?我运行脚本的机器上的/etc/sudoers中没有requirety,但我不确定远程目标
stdin, stdout, stderr = ssh.exec_command('sudo hostname', get_pty=True)