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

时间:2014-12-20 11:16:29

标签: 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("uptime")
print stdout.readlines()

典型的Linux主机没有任何问题,但在特殊的Linux机箱上尝试时(该机箱有自定义的Ubuntu 12.04外壳),会出现此错误:

  

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

有什么问题?我可以通过传统的ssh客户端连接到我的特殊Linux机器,例如Linux ssh-client和putty。

1 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。问题是由exec_command函数引起的。它不会从服务器请求伪终端,因此我的盒子无法处理没有伪终端请求的非交互式shell。为了解决这个问题,我在调用get_pty=True时使用了exec_command参数,因此第四行替换为:

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