Paramiko SSH exec_command для сервера IPv6 из Windows-клиента - PullRequest
0 голосов
/ 19 сентября 2018

Следующий код работает нормально, чтобы получить результат выполнения команды на удаленном сервере для IPv4 с использованием paramiko.SSHClient.Но тот же код не работает для сервера IPv6.

import paramiko
dssh = paramiko.SSHClient()
dssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
dssh.connect("IPv6_Address", username="root", password="orange")
stdin,stdout,stderr=dssh.exec_command("pwd")
print(stdout.read())

, а затем я попытался использовать сокетное соединение для IPv6, как показано ниже

sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
sock.connect((hostname, port))
t = paramiko.Transport(sock)

, но paramiko.Transport не имеет exec_command.

1 Ответ

0 голосов
/ 19 сентября 2018

SSHClient.connect имеет sock параметр:

sock = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
sock.connect(("IPv6_Address", port))
dssh.connect("IPv6_Address", username="root", password="orange", sock=sock)

Примечание: Не используйте AutoAddPolicy как этот.При этом вы теряете безопасность.
См. Paramiko "Неизвестный сервер"
.

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