Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中排除无法建立SSH连接的问题?_Python_Debugging_Ssh_Paramiko - Fatal编程技术网

如何在python中排除无法建立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 '.

我有两个几乎相同的设备。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>)
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没有问题)。