paramiko为失败的连接抛出了什么错误/异常?

时间:2012-12-18 10:24:50

标签: python paramiko

如果失败:

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在连接尝试失败时会出现何种错误。哪些是异常类,我该如何导入它们?

3 个答案:

答案 0 :(得分:5)

您可以从查看API文档开始,对于以Exception结尾的所有类:

http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.connect

然后,您还应该抓住socket.error。我想这会让你几乎所有的东西。例如,socket.gaierrorsocket.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 =密钥)

对我有用。