代码之家  ›  专栏  ›  技术社区  ›  Zim

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

  •  0
  • Zim  · 技术社区  · 6 年前

    我有两个几乎相同的装置。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,这在命令行连接上没有错误。

    0 回复  |  直到 6 年前