【问题标题】:paramiko Authentication rejected with error 877paramiko 身份验证被拒绝,错误 877
【发布时间】:2014-12-23 18:39:09
【问题描述】:

我在 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

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

【问题讨论】:

标签: python linux ssh paramiko


【解决方案1】:

我终于找到了解决方案。问题是由于exec_command 功能造成的。它不向服务器请求 pseudo-terminal,因此我的盒子无法处理没有伪终端请求的非交互式 shell。为了克服这个问题,我在调用exec_command时使用了get_pty=True参数,所以第四行替换为:

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

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2019-08-08
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2018-04-25
    • 2017-11-28
    • 2016-03-15
    相关资源
    最近更新 更多