SSH из объекта Python на удаленный сервер с ошибкой - PullRequest
0 голосов
/ 29 октября 2018

Привязка к SSH с сервера, использующего PARAMIKO, и получение ошибки

import paramiko

class SSH_Connection(object):
    def __init__(self, instance, mode,LOCAL_IP, username, password):
        self.instance = instance
        self.mode = mode
        self.LOCAL_IP = LOCAL_IP
        self.username = username
        self.password = password
        self.mode = mode
        self.client = paramiko.SSHClient()
        self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        self.client.connect(self.LOCAL_IP, username=self.username, password=self.password)

    def std(self,message):
        self.message=message
        _in, out, err = self.client.exec_command(self.message)
        exitcode = out.channel.recv_exit_status()
        stdout = ''.join(out.read())
        stderr = ''.join(err.read())
        return stdout,stderr, exitcode
class UNIT(SSH_Connection):
    pass 

unit = UNIT(1, 'live', 'x.x.x.x', username='root', password='something')

и затем я пытаюсь ssh из "устройства" на другой сервер:

unit.std('sshpass -p 123 ssh root@172.16.46.134 -y')

Я получаю следующее:

 "\nHost '172.16.46.134' key accepted unconditionally.\n(ecdsa-sha2-nistp256 fingerprint md5 e3:e7:05:73:ac:71:66:74:94:f3:31:2c:77:94:f3:5c)\nssh: Failed reading termmodes\n\nssh: Connection to root@172.16.46.134:22 exited: Failed to set raw TTY mode\n",

когда я делаю то же самое на Linux из «устройства», это работает:

sshpass -p 123 ssh root@172.16.46.134 -y

что мне делать, чтобы заставить SSH из Python использовать paramiko, а затем SSH с помощью exe_command?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...