Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.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身份验证被拒绝,错误为877_Python_Linux_Ssh_Paramiko - Fatal编程技术网

Python paramiko身份验证被拒绝,错误为877

Python paramiko身份验证被拒绝,错误为877,python,linux,ssh,paramiko,Python,Linux,Ssh,Paramiko,我在python中使用paramiko通过ssh运行命令。我使用了以下代码: import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('MY-SERVER-IP', username='USERNAME',password='PASSWORD') stdin, stdout, stderr = ssh.exec_command

我在python中使用paramiko通过ssh运行命令。我使用了以下代码:

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('MY-SERVER-IP', username='USERNAME',password='PASSWORD')
stdin, stdout, stderr =  ssh.exec_command("uptime")
print stdout.readlines()
典型的Linux主机没有任何问题,但是当在一个特殊的Linux机器上尝试时(这个机器有一个自定义的Ubuntu 12.04外壳),会出现以下错误:

身份验证被拒绝,错误为:877


有什么问题吗?我可以通过传统的ssh客户端(如Linux ssh客户端和putty)连接到我的专用Linux机箱。

最终我找到了解决方案。该问题是由执行命令的
exec\u
功能引起的。它不会从服务器请求伪终端,因此如果没有伪终端请求,“我的盒子”无法处理非交互式shell。为了解决这个问题,我在调用
exec_命令
时使用了
get_pty=True
参数,因此第四行替换为:

ssh.connect('MY-SERVER-IP', username='USERNAME',password='PASSWORD',get_pty=True)

只是一个猜测,但可能与或有关?这些问题是关于在服务器请求用户名之前发生的主机密钥(我已经用第三行解决了这个问题)。