1

我刚刚尝试使用 ssh 连接paramiko。一切看起来都很好,但在最后一步,当调用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

外壳只是挂起,我可以输入东西,没有任何结果,Ctrl+CCtrl+D不会停止脚本或连接。除了关闭有点脏的shell窗口之外,我别无他法。

我正在运行 Ubuntu 10.10python 2.6.6paramiko-1.7.4从源代码编译。

我真的不知道会发生什么;该close()方法在执行后作为打印“blah”正确执行,没有错误消息,并且仍然连接没有适当的方法来停止它。

谢谢你帮助我:)

干杯;

菲利普

4

1 回答 1

2

TL;DR:您没有调用该函数。这样做ssh.close()而不是ssh.close

ssh.close是对该函数的引用。它告诉你函数,它不调用函数。这是一个例子:

def a():
    return 6

a
> <function a at 0x108f71aa0>
a()
> 6
于 2011-03-04T13:54:20.340 回答