Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Paramiko:不存在tty,也没有指定askpass程序_Python_Python 2.7 - Fatal编程技术网

Python Paramiko:不存在tty,也没有指定askpass程序

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

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, 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)