使用
python交互式shell和本地运行的openssh,我使用paramiko不断得到一个“No existing session”异常.我的代码如下
import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('localhost',username=name,password=pw)
结果是:
No handlers could be found for logger "paramiko.transport" Traceback (most recent call last): File "<stdin>",line 1,in <module> File "/usr/local/lib/python2.6/dist-packages/paramiko-1.7.7.1-py2.6.egg/paramiko/client.py",line 332,in connect self._auth(username,password,pkey,key_filenames,allow_agent,look_for_keys) File "/usr/local/lib/python2.6/dist-packages/paramiko-1.7.7.1-py2.6.egg/paramiko/client.py",line 493,in _auth raise saved_exception paramiko.SSHException: No existing session
我以前能够连接,但一直在尝试调整这一点,以允许基于密钥的授权.那失败了,从那时起,我一直无法连接到本地.我已经尝试重新启动openssh,并已成功连接到另一个服务器.在通过这里搜索后,我发现的是授权异常的提及,这在这里似乎不是这样.
解决方法
由于您已经拥有密码,因此无需与代理商进行通话,或者寻找存储在机器上的私钥.所以尝试传递额外的参数allow_agent,look_for_keys:
ssh.connect('localhost',password=pw,allow_agent=False,look_for_keys=False)