使用Python库将文件从本地服务器传输到另一个服务器 - Paramiko

时间:2018-03-01 07:28:08

标签: python python-2.7 paramiko

我想将文件从本地服务器(包含代码和文件)传输到远程服务器,最好使用ssh。这是代码:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('Servername', port = 135, username='username', password='password')
print "connected successfully!"
sftp = ssh.open_sftp()
print sftp
sftp.put('G:\TestDocument.txt','G:\TestDocument.txt' )
sftp.close()
print "copied successfully!"

ssh.close()

但是我收到了这个错误:

  

找不到记录器“paramiko.transport”

的处理程序      

Traceback(最近一次调用最后一次):文件   “C:/Python27/testtransfer.py”,第5行,in       ssh.connect('Servername',port = 135,username ='username',password ='password')文件   “C:\ Python27 \ lib \ site-packages \ paramiko \ client.py”,第392行,in   连       t.start_client(timeout = timeout)文件“C:\ Python27 \ lib \ site-packages \ paramiko \ transport.py”,第545行,   start_client       引发SSHException:读取SSH协议标题时出错

你能告诉我为什么会收到这个错误吗?我故意使用端口135,因为端口22在目标服务器上关闭,135(以及其他)打开。

您甚至可以建议使用Python将文件从一台服务器传输到另一台服务器的其他方式。

1 个答案:

答案 0 :(得分:1)

SSHException: Error reading SSH protocol banner

错误通常意味着远程服务不是ssh服务。尝试确保端口135上的服务实际上是ssh。

你服务器上的操作系统是什么?视窗?如果是这样,您可能需要在服务器上设置第三方的ssh服务器。在我看来,如果你需要将文件从Windows复制到Windows ftp是一个更简单的解决方案。 python有一个内置的lib ftplib