2013-07-31 94 views
1

我正尝试最简单的方式,使一个SSH连接,并用的paramiko的paramiko SSH蟒蛇

import paramiko, base64 
client = paramiko.SSHClient() 
client.load_system_host_keys() 
client.connect('10.50.0.150', username='XXXXX', password='XXXXXX') 
stdin, stdout, stderr = client.exec_command('show performance -type host-io') 
for line in stdout: 
    print '... ' + line.strip('\n') 
client.close() 

------------错误执行命令------ -----------------

Traceback (most recent call last): 
    File "a.py", line 5, in <module> 
    stdin, stdout, stderr = client.exec_command('show performance -type host-io') 
    File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/client.py", line 374, in exec_command 
    chan.exec_command(command) 
    File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 218, in exec_command 
    self._wait_for_event() 
    File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 1122, in _wait_for_event 
    raise e 
EOFError 

如果我执行此代码更改它的工作命令和另一台计算机,此命令通过SSH interative壳工作正常。

有什么想法?

+1

登录到系统(引发异常)并运行该命令。你得到了什么? – falsetru

+0

如果我使用linux ssh命令,我会得到预期的结果。 ssh服务器是远程协议版本1.99,远程软件版本IPSSH-6.7.0 – POLLOX

回答

1

client.connect(. . .)后,您需要使用此命令

session = client.get_transport().open_session()

然后使用session.exec_command(. . .)

+0

我有类似的问题。我启动的SSH命令长时间运行(几分钟)。如您所示,创建会话的原因是什么? –