如何在python中排除无法建立SSH连接的问题?
我有两个几乎相同的设备。spur将通过ssh连接其中一个,而不是另一个。我怎么知道原因呢如何在python中排除无法建立SSH连接的问题?,python,debugging,ssh,paramiko,Python,Debugging,Ssh,Paramiko,我有两个几乎相同的设备。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 '.
>>> 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>)
shell1=spur.SshShell('10.201.140.242','username','password',缺少\u host\u key=spur.ssh.MissingHostKey.accept)
>>>results=shell1.run(['ls','-a']))
>>>结果.产出
'.\n..\n.aptitude\n.bashrc\n.cache\n.config\n.profile\n'
>>>shell2=spur.SshShell('10.201.129.56','username','password',缺少\u host\u key=spur.ssh.MissingHostKey.accept)
>>>results=shell2.run(['ls','-a']))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第166行,正在运行
返回self.spawn(*args,**kwargs)。等待结果()
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第178行,在spawn中
channel=self.\u get\u ssh\u transport().打开会话()
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第268行,在\u get\u ssh\u传输中
提升自我连接错误(错误)
ConnectionError:创建SSH连接时出错
原始错误:('10.201.129.56',)
我被错误信息弄糊涂了。返回ip和两个关键对象意味着什么?这里有没有我应该从中收集到的有用信息
这两个设备都将接受来自命令行的ssh连接,因此这就排除了一个明显的问题
两者都运行相同版本的Ubuntu,具有相同的登录凭据。主目录甚至是相同的(no.ssh dir)。更进一步说,它们的两个sshd_配置文件都是相同的(因此,在其他配置选项中也使用相同的版本)
ssh设置中似乎没有问题,但是错误没有指出问题可能在哪里
有什么想法吗
启用日志记录不会增加太多内容 外壳1:
11:32:11 |[INFO]-paramiko.transport-_log-Connected(版本2.0,客户端OpenSSH_5.9p1)
11:32:11 |[INFO]-paramiko.transport-_log-身份验证(密码)成功代码>
外壳2:
11:32:25 |[INFO]-paramiko.transport-_log-Connected(版本2.0,客户端OpenSSH_5.9p1)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第166行,正在运行
返回self.spawn(*args,**kwargs)。等待结果()
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第178行,在spawn中
文件“E:\development\virtenv\lib\site packages\spur\ssh.py”,第268行,在\u get\u ssh\u传输中
提升自我连接错误(错误)
ConnectionError:创建SSH连接时出错
原始错误:('10.201.129.56',)
这可能说明SSH报告了连接。失败发生在身份验证之前/期间。但正如我上面所说的,密码是相同的——两个连接甚至使用相同的复制粘贴pw,在命令行连接上工作时不会出错。并发布日志文件:我发现使用设备的网络域允许连接没有问题。它只是因为某些原因不喜欢IP!(同样,对于软件的“shell2”,shell1几乎相同,与ip没有问题)。