嗨,我有这个样本路径" \ 10.81.67.162"这是一个远程服务器(Windows操作系统)
我希望能够使用python中的paramiko将文件(本地)传输到远程服务器。
如果服务器在linux中,我可以使它工作。
这是我的示例代码
import paramiko
import base64
username = 'username'
password = 'password'
host = "10.81.67.162"
port = 22
transport = paramiko.Transport((host,port))
transport.connect(username = username, password = password)
stfp = paramiko.SFTPClient.from_transport(transport)
但是在Windows中出现了这个错误:
Traceback (most recent call last):
File "ssh.py", line 9, in <module>
transport = paramiko.Transport((host,port))
File "build\bdist.win32\egg\paramiko\transport.py", line 289, in __init__
File "C:\Python27\lib\socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 10061] No connection could be made because the target machi
ne actively refused it
Python 2.7版
Paramiko版本1.7.5
谢谢!
答案 0 :(得分:0)
Windows上没有运行SSH服务器。这就是为什么你无法连接。 Windows本身不支持SSH。您需要在远程Windows主机上安装第三方SSH服务器,如cygwin,bitwise ssh或freeSSHD。
或者如果您有兴趣只在Windows主机上运行命令,那么您可以使用Windows本机支持的winrm协议。为此你需要一个python库pywinrm。我用过这个并且工作正常:
答案 1 :(得分:0)
如果您尝试连接到网络驱动器,可以使用win_unc:
import os
from win_unc import UncCredentials, UncDirectory, UncDirectoryConnection
creds = UncCredentials('USERNAME', 'PASSWORD')
unc = UncDirectory(r'\\<computername>\c$', creds)
conn = UncDirectoryConnection(unc)
conn.connect()
print list(os.listdir(r'\\<computer_name>\c$\<folder>'))