Вложенный S SH с использованием paramiko - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь войти в маршрутизатор через сервер перехода. Я попробовал код, но столкнулся с ошибкой и не понял, в чем проблема. Пожалуйста, если кто-нибудь знает, нужна помощь для решения ошибки.

Мой проверенный код:

#!/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

Пожалуйста, дайте мне знать, как может быть ошибка решено.

...