Python 对于失败的连接,paramiko会抛出什么错误/异常?

Python 对于失败的连接,paramiko会抛出什么错误/异常?,python,paramiko,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/para

如果失败:

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
文件“”,第1行,在
文件“”,第7行,在bs_过程中
文件“/usr/lib/python2.7/site packages/paramiko/client.py”,第282行,在connect中
对于socket.getaddrinfo(主机名、端口、socket.AF_unsec、socket.SOCK_流)中的(系列、socktype、proto、canonname、sockaddr):
socket.gaierror:[Errno-2]名称或服务未知

我想不出Paramiko会因为错误的连接尝试而抛出什么样的错误。哪些是异常类以及如何导入它们?

您可以先查看API文档,了解以异常结尾的所有类:


然后,您还应该捕获
socket.error
。我想这会让你得到几乎所有的东西
socket.gaierror是socket.error的一个子类,例如。

接受的答案有一个断开的链接。Paramiko的文档目前位于:

如果使用“连接”方法,则会引发以下问题:

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

问题在于调用
ssh.connect()

在这种情况下,必须指定连接端口。
示例:

ssh.connect(server, port=22, username=user, pkey=key)

这对我很有用。

我捕获(并重新引发)
BadHostKeyException
AuthenticationException
sshexException
socket.error
。很明显,
badhoskeyexception
AuthenticationException
SSHException
的子类。所以你只需要后者…我以不同的方式处理它们@glglgl。。。我可能不需要
SSHException
,但它是不久前编写的,我想确定……是的,
除了(paramiko.SSHException,socket.error),因为se:
是正确的