Я пытаюсь войти в маршрутизатор через сервер перехода. Я попробовал код, но столкнулся с ошибкой и не понял, в чем проблема. Пожалуйста, если кто-нибудь знает, нужна помощь для решения ошибки.
Мой проверенный код:
#!/usr/bin/python
#
# Paramiko
#
import paramiko
import sys
import subprocess
#
# we instantiate a new object referencing paramiko's SSHClient class
#
vm = paramiko.SSHClient()
vm.set_missing_host_key_policy(paramiko.AutoAddPolicy())
vm.connect('1.1.1.1', username='abc', password='abc')
print("ssh1 success")
#
vmtransport = vm.get_transport()
dest_addr = ('2.2.2.2', 22)
local_addr = ('1.1.1.1', 22)
vmchannel = vmtransport.open_channel("direct-tcpip", dest_addr, local_addr)
#
jhost = paramiko.SSHClient()
jhost.set_missing_host_key_policy(paramiko.AutoAddPolicy())
jhost.connect('2.2.2.2', username='xyz', password='xyz', sock=vmchannel)
print("ssh2 success")
#
stdin, stdout, stderr = jhost.exec_command("show version")
#
print (stdout.read())
#
jhost.close()
vm.close()
# End
Ошибка:
ssh1 success
ssh2 success
Traceback (most recent call last):
File "nested_ssh.py", line 65, in <module>
stdin, stdout, stderr = jhost.exec_command("show version") #edited#
File "C:\python3\lib\site-packages\paramiko\client.py", line 499, in exec_command
chan.exec_command(command)
File "C:\python3\lib\site-packages\paramiko\channel.py", line 72, in _check
return func(self, *args, **kwds)
File "C:\python3\lib\site-packages\paramiko\channel.py", line 257, in exec_command
self._wait_for_event()
File "C:\python3\lib\site-packages\paramiko\channel.py", line 1208, in _wait_for_event
raise e
File "C:\python3\lib\site-packages\paramiko\transport.py", line 1982, in run
ptype, m = self.packetizer.read_message()
File "C:\python3\lib\site-packages\paramiko\packet.py", line 441, in read_message
header = self.read_all(self.__block_size_in, check_rekey=True)
File "C:\python3\lib\site-packages\paramiko\packet.py", line 290, in read_all
raise EOFError()
EOFError
Пожалуйста, дайте мне знать, как может быть ошибка решено.