如何使用ssh与python和linux连接到Windows并运行命令?

时间:2018-01-28 16:00:00

标签: python unix ssh paramiko

我在Python上编写了一个通用脚本,支持来自Unix的Windows和Unix ssh连接。

当我从Unix尝试使用Unix命令在Windows中创建目录时,我会退出53

/usr/bin/ssh2 --password pass -l admin ip_address

当我只写C:\Temp\ALEX_TEST_EX时,它是好的。我登录Windows

当我在这台机器上手动尝试import paramiko ssh = paramiko.SSHClient() ssh.connect("ip_address", username="admin", password="pass") 时,它也是好的。

什么是问题?

我也尝试使用Python ssh2命令,如

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/python3.5/site-packages/paramiko/client.py", line 402, in connect
    self, server_hostkey_name, server_key
  File "/python3.5/site-packages/paramiko/client.py", line 768, in missing_host_key
   'Server {!r} not found in known_hosts'.format(hostname)
paramiko.ssh_exception.SSHException: Server 'X.Y.Z.W' not found in known_hosts

但我得到例外

map

1 个答案:

答案 0 :(得分:1)

您尚未配置客户端计算机以允许您知道您尝试连接的服务器。您可以配置客户端,或者作为解决方法,您可以在paramiko上设置MissingHostKeyPolicy,如:

代码:

警告主机何时不在已知主机中:

ssh.set_missing_host_key_policy(paramiko.WarningPolicy)

自动添加主机以了解主机:

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy)

完整代码:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.WarningPolicy)

ssh.connect("localhost", username="admin", password="pass")