如何在python中排除spur无法建立SSH连接的故障?

2024-06-01 09:14:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个几乎相同的装置。spur将通过ssh连接其中一个,而不是另一个。我怎么知道为什么?在

>>> shell1 = spur.SshShell('10.201.140.242', 'username', 'password', missing_host_key=spur.ssh.MissingHostKey.accept)
>>> results = shell1.run(['ls', '-a'])
>>> results.output
'.\n..\n.aptitude\n.bashrc\n.cache\n.config\n.profile\n'

>>> shell2 = spur.SshShell('10.201.129.56', 'username', 'password', missing_host_key=spur.ssh.MissingHostKey.accept)
>>> results = shell2.run(['ls', '-a'])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 166, in run
return self.spawn(*args, **kwargs).wait_for_result()
  File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 178, in spawn
channel = self._get_ssh_transport().open_session()
  File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 268, in _get_ssh_transport
raise self._connection_error(error)
ConnectionError: Error creating SSH connection
Original error: ('10.201.129.56', <paramiko.ecdsakey.ECDSAKey object at 0x11328070>, <paramiko.ecdsakey.ECDSAKey object at 0x1135F350>)

我被错误信息弄糊涂了。返回ip和两个关键对象意味着什么?有什么有用的信息是我应该从中收集到的吗?在

这两个设备都将从命令行接受ssh连接,这样就排除了一个明显的问题。在

两者都运行相同版本的Ubuntu,使用相同的登录凭据。主目录甚至是相同的(no.ssh dir)。更进一步,它们的sshd_配置文件都是相同的(因此,在其他配置选项中也使用相同的版本)。在

问题似乎不在ssh设置中,但是错误没有给出问题可能在哪里的指示!在

有什么想法吗?在


启用日志不会增加太多。在

外壳1:

11:32:11|[ INFO] - paramiko.transport - _log - Connected (version 2.0, client OpenSSH_5.9p1) 11:32:11|[ INFO] - paramiko.transport - _log - Authentication (password) successful!

外壳2:

11:32:25|[ INFO] - paramiko.transport - _log - Connected (version 2.0, client OpenSSH_5.9p1) Traceback (most recent call last): File "<input>", line 1, in <module> File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 166, in run return self.spawn(*args, **kwargs).wait_for_result() File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 178, in spawn File "E:\development\virtenv\lib\site-packages\spur\ssh.py", line 268, in _get_ssh_transport raise self._connection_error(error) ConnectionError: Error creating SSH connection Original error: ('10.201.129.56', <paramiko.ecdsakey.ECDSAKey object at 0x1132EF10>, <paramiko.ecdsakey.ECDSAKey object at 0x11366DF0>)

它可能表明SSH报告连接。失败发生在身份验证之前/期间。但正如我上面所说的,密码是相同的——两个连接甚至使用相同的拷贝粘贴的pw,这在命令行连接中可以正常工作。在


Tags: inpyselfparamikolibpackageslinesite