我刚刚尝试与paramiko
进行ssh连接。
一切都很好,但在最后一步,调用close()
方法断开客户端。
这是我的剧本:
#!/usr/bin/python
import paramiko
import os
ssh = paramiko.SSHClient()
private_key = os.path.expanduser('~/.ssh/id_dsa')
mkey = paramiko.DSSKey.from_private_key_file(private_key,password='JacquiKoala')
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('monitor', username='probert', pkey = mkey)
stdin, stdout, stderr = ssh.exec_command('whoami')
print stdout.readlines()
ssh.close
shell只是挂起,我可以输入内容,没有任何结果, Ctrl + C 或 Ctrl + D 不要停止脚本也不要连接。除了关闭有点脏的shell窗口之外别无他法。
我正在运行Ubuntu 10.10,其中python 2.6.6
和paramiko-1.7.4
已从源代码编译。
我真的不知道会发生什么;执行后close()
方法作为打印“blah”正确执行,没有错误消息,并且在没有适当方法停止的情况下仍然连接。
感谢您帮助我:)
干杯;
菲利普
答案 0 :(得分:2)
TL; DR:您没有调用该函数。使用ssh.close()
代替ssh.close
ssh.close
是对该函数的引用。它告诉你有关函数的信息,它不会调用函数。这是一个例子:
def a():
return 6
a
> <function a at 0x108f71aa0>
a()
> 6