我想将文件从本地服务器(包含代码和文件)传输到远程服务器,最好使用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将文件从一台服务器传输到另一台服务器的其他方式。
答案 0 :(得分:1)
SSHException: Error reading SSH protocol banner
错误通常意味着远程服务不是ssh服务。尝试确保端口135上的服务实际上是ssh。
你服务器上的操作系统是什么?视窗?如果是这样,您可能需要在服务器上设置第三方的ssh服务器。在我看来,如果你需要将文件从Windows复制到Windows ftp是一个更简单的解决方案。 python有一个内置的lib ftplib
。