如果失败:
ssh = paramiko.SSHClient()
ssh.connect( host, username = USER , pkey = MY_KEY, timeout = 2)
我得到了一个跟踪:
File "<stdin>", line 1, in <module>
File "<stdin>", line 7, in bs_process
File "/usr/lib/python2.7/site-packages/paramiko/client.py", line 282, in connect
for (family, socktype, proto, canonname, sockaddr) in socket.getaddrinfo(hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM):
socket.gaierror: [Errno -2] Name or service not known
我无法确定Paramiko在连接尝试失败时会出现何种错误。哪些是异常类,我该如何导入它们?
答案 0 :(得分:5)
您可以从查看API文档开始,对于以Exception结尾的所有类:
http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect
然后,您还应该抓住socket.error
。我想这会让你几乎所有的东西。例如,socket.gaierror
是socket.error
的子类。
答案 1 :(得分:3)
接受的答案链接断了。 Paramiko的文档现在住在:
http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect
“connect”方法将引发以下内容:
BadHostKeyException – if the server’s host key could not be verified
AuthenticationException – if authentication failed
SSHException – if there was any other error connecting or establishing an SSH session
socket.error – if a socket error occurred while connecting
答案 2 :(得分:0)
问题在于调用ssh.connect()。
在这种情况下,必须指定连接端口。
示例:
ssh.connect(服务器,端口= 22,用户名=用户,pkey =密钥)
对我有用。