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

问题描述 投票:0回答:1

以下代码可以正常工作,可以使用

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

python ssh paramiko
1个回答
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“未知服务器”

© www.soinside.com 2019 - 2024. All rights reserved.