Windows客户端上用于IPv6服务器的Paramiko ssh exec_command

时间:2018-09-19 04:40:10

标签: python ssh paramiko

以下代码可以正常工作,以使用paramiko.SSHClient在IPv4的远程服务器上获取命令执行的输出。但是相同的代码不适用于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 :(得分:1)

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 "Unknown Server"