【发布时间】:2018-07-16 11:25:27
【问题描述】:
def trylogin(ipaddress):
global user, passwd
vmchannel = vmtransport.open_channel("direct-tcpip", dest_addr, local_addr)
jhost = paramiko.SSHClient()
jhost.set_missing_host_key_policy(paramiko.AutoAddPolicy())
jhost.connect(line, username=user, password=passwd, sock=vmchannel,)
vm = paramiko.SSHClient()
vm.set_missing_host_key_policy(paramiko.AutoAddPolicy())
vm.connect('57.255.35.71', username='xxxx', password='xxxx')
vmtransport = vm.get_transport()
local_addr = ('57.255.35.71', 22)
dest_addr = (IP, 22)
threading.Thread(target=trylogin, args=(IP,)).start()
在使用线程在多个设备 IP 上循环运行上述代码时,它显示以下异常
Exception: Incompatible version (1.5 instead of 2.0)
Traceback (most recent call last):
File "C:\Users\mostafa.katary\AppData\Local\Programs\Python\Python36-32\lib\site-packages\paramiko\transport.py", line 1856, in run
self._check_banner()
File "C:\Users\mostafa.katary\AppData\Local\Programs\Python\Python36-32\lib\site-packages\paramiko\transport.py", line 2032, in _check_banner
raise SSHException(msg.format(version))
paramiko.ssh_exception.SSHException: Incompatible version (1.5 instead of 2.0)
但设备已经使用 SSH 2.0 版,如果在单个 IP 上运行或根本不使用线程,则此代码可以正常运行。
【问题讨论】:
-
你想在这里实现什么?您似乎以一种毫无意义的方式设置端口转发。
-
我正在尝试通过跳转服务器访问多个 Cisco 交换机并使用线程在所有交换机上执行类似的命令
标签: python multithreading ssh paramiko cisco