Python 中的 paramiko模块是一个非常方便好用的连接远端 ssh 通道的方法。使用起来也很方便:
-
import paramiko
-
ssh = paramiko.SSHClient()
-
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
-
ssh.connect('localhost',username=name,password=pw)
实践中,遇到一些异常,奇怪的是,同样的代码,某些服务器上面是好的,而某些服务器上面是坏的。
-
File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 337, in connect
-
self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
-
File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 528, in _auth
-
raise saved_exception
-
AuthenticationException: Authentication failed.
-
-
File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 337, in connect
-
self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
-
File "/usr/local/lib/python2.7/site-packages/paramiko/client.py", line 528, in _auth
-
raise saved_exception
-
paramiko.SSHException: No existing session
最终找到的解决方法很简单,在connect 的时候加入参数 allow_agent
, look_for_keys 就可以了。
-
ssh.connect('localhost',username=name,password=pw,allow_agent=False,look_for_keys=False)
阅读(28509) | 评论(0) | 转发(0) |