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:
是正确的