Python 启用强制命令时,paramiko不工作

Python 启用强制命令时,paramiko不工作,python,ssh,paramiko,Python,Ssh,Paramiko,我试图通过ssh执行一些命令 import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) private_key = paramiko.RSAKey.from_private_key_file("/home/kalombo/identity") client.connect(hostname=host, username=username, p

我试图通过ssh执行一些命令

import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
private_key = paramiko.RSAKey.from_private_key_file("/home/kalombo/identity")
client.connect(hostname=host, username=username, pkey=private_key)
stdin, stdout, stderr = client.exec_command('pwd', timeout=5)
for line in stdout:
    print '... ' + line.strip('\n')
client.close()
若ssh服务器有一个强制命令选项,那个么脚本将停止,并在超时过期时不执行任何操作。有一个调试日志。您可以注意到“强制命令”行:

如果我禁用该选项,一切正常。为什么会这样?我怎么能修好它

DEBUG:paramiko.transport:Debug msg: Forced command.
没有办法解决这个问题。如果服务器配置了密钥的强制命令,则使用该密钥打开的任何会话都将导致服务器忽略您正在请求的命令,转而调用强制命令

如果不知道服务器正在运行什么命令,就无法知道它挂起的原因。强制命令可能正在等待来自远程ssh客户端的输入,在这种情况下,它将无限期地等待


强制命令可以通过环境变量“SSH\u original\u command”访问客户端请求的原始命令。强制命令可以检查此变量并调用客户端请求的命令,但在编写强制命令时必须考虑此功能。

正在执行的命令是什么,以代替pwd?也许执行的时间太长了。
DEBUG:paramiko.transport:Debug msg: Forced command.