【发布时间】:2018-08-20 18:16:55
【问题描述】:
我正在尝试建立从 Windows 机器到其他 Windows 机器的远程桌面连接,并尝试了以下场景 -
import paramiko
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('IP',port = 3389, username='un',password='pwd')
print ("Connected to %s" % 'IP')
stdin, stdout, stderr = ssh.exec_command('ls -1 /root|head -n 5')
print ("STDOUT:\n%s\n\nSTDERR:\n%s\n" %( stdout.read(), stderr.read() ))
在运行上面的代码时,我观察到下面的错误消息
paramiko.ssh_exception.SSHException: 读取 SSH 协议横幅时出错[WinError 10054] 现有连接被远程主机强行关闭
看了这个问题 - python connecting to ssh An existing connection was forcibly closed by the remote host 但是,我没有在我的代码中关闭连接并且仍然面临异常。
我查看了一些论坛并了解到对于 windows 机器 3389 是远程桌面连接的端口,因此在我的代码中使用 3389 作为端口。
我也使用了port=22,运行代码并观察到这个异常:
paramiko.ssh_exception.NoValidConnectionsError: [Errno None] 无法连接到 IP 上的 22 端口
我也尝试了一些 - How to connect to a remote Windows machine to execute commands?
此处所述的程序用于建立远程桌面连接。但无法建立连接。
版本:
- paramiko:2.4.0
- 蟒蛇:3.6.4
【问题讨论】:
标签: python windows ssh paramiko remote-desktop