4

如果失败:

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 会因错误的连接尝试而引发什么样的错误。哪些是异常类,如何导入它们?

4

3 回答 3

6

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

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

然后,你也应该抓住socket.error. 我认为这会让你得到几乎所有的东西。socket.gaierror是 的子类socket.error,例如。

于 2012-12-18T10:37:20.830 回答
4

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

http://docs.paramiko.org/en/1.15/api/client.html#paramiko.client.SSHClient.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
于 2015-01-26T20:08:10.133 回答
0

问题在于调用ssh.connect().
在这种情况下,必须指定连接端口。
例子:

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

那对我有用。

于 2019-07-11T15:53:16.063 回答