[英]PYSFTP script to Upload and Download
我需要一些帮助,当我尝试连接时,我会收到消息。 我执行的脚本如下。 有关如何解决此问题的任何建议?
此外,一旦我得到这个问题修复我想要添加到这个脚本的能力,直到结果文件可用,并从另一个远程目录下载它。
先感谢您
No hostkey for host mysftpserver.com found.
Exception AttributeError: "'Connection' object has no attribute
'_sftp_live'" in <bound method Connection.__del__ of <pysftp.Connection
object at 0x101d8cd50>> ignored
Process finished with exit code 0
脚本
import pysftp as sftp
def sftpExample():
try:
s = sftp.Connection(host='mysftpserver', port=1211, username='myusername', password='mypassword')
remotepath='/Orders/incoming/myfile.csv'
localpath='/Users/myusername/projects/order88.csv'
s.put(localpath,remotepath)
s.close()
except Exception, e:
print str(e)
sftpExample()
Stack Overflow上的pysftp文档和其他答案似乎也表明可以通过设置cnopts.hostkeys = None
来解决错误。
所以完整的代码将是这样的:
import pysftp
def sftpExample():
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection('hostname', username='me', password='secret', cnopts=cnopts) as sftp:
sftp.put('/Users/myusername/projects/order88.csv','/Orders/incoming/myfile.csv') # upload file to public/ on remote
sftp.close()
sftpExample()
希望能帮助到你!
根据pysftp文档,您需要在~/.ssh/known_hosts
拥有远程主机密钥。 您可以通过ssh
命令连接到服务器来执行此操作(它将询问您是否要向主机文件添加新密钥;如果您信任远程主机的指纹,则只需键入yes
)。
官方文档还指出了如何完全禁用主机检查,但不建议这样做,因为它会破坏SSH身份识别的关键安全功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.