使用pysftp密钥错误将sftp转换为aws lightsail python
我的aws ssh密钥为awskey.pem。 我正在尝试使用PySTFP将sftp发送到主机使用pysftp密钥错误将sftp转换为aws lightsail python,python,format,pem,pysftp,Python,Format,Pem,Pysftp,我的aws ssh密钥为awskey.pem。 我正在尝试使用PySTFP将sftp发送到主机 import pysftp as sftp keyfile='c:\\awskey.pem' Cnopts=sftp.CnOpts() Cnopts.hostkeys.load(keyfile) srv=sftp.connection(host ='xx.xx.xx.xx',cnopts=Cnopts) lpath='c:\\test.txt' rpath='test.txt' srv.put(lp
import pysftp as sftp
keyfile='c:\\awskey.pem'
Cnopts=sftp.CnOpts()
Cnopts.hostkeys.load(keyfile)
srv=sftp.connection(host ='xx.xx.xx.xx',cnopts=Cnopts)
lpath='c:\\test.txt'
rpath='test.txt'
srv.put(lpath,rpath)
srv.close()
读取pem文件时似乎出现问题
当我得到错误时'pysftp.exceptions.HostKeysException:找不到主机密钥'
在搜索其他网站时,没有讨论 密钥文件的格式。
不确定它是否应该是一个 格式,否则我必须将其转换为其他格式。
在这上面花了两天的时间之后,我不再领先了
keyfile='c:\\awskey.pem'
srv=sftp.connection(host ='xx.xx.xx.xx',username='user',private_key=keyfile)
现在我得到了错误pysftp.exceptions.HostKeysException:未找到主机密钥
一定是在什么地方漏掉了什么。 这是在Windows 10上,因此没有.ssh/known_hosts文件。
我需要检索主机密钥吗?
或者按照其他地方的建议切换回PySTFP 0.2.8?您的问题与服务器主机密钥有关。那就看吧 您的问题与您的私钥无关,您应该使用私钥进行身份验证。私钥转到的
private\u key
参数。看
另请参阅我关于的文章。最终使其工作,因为Filezilla只与 密钥文件、用户、主机IP,然后将主机密钥设置为“无” 设置CnOpts对hostip的调用后工作正常
import pysftp as sftp
hostip = "xx.xx.xx.xx"
keyfile ='c:\\awskey.pem'
userb = "bitnami"
Cnopts=sftp.CnOpts(hostip)
Cnopts.hostkeys = None
srv=sftp.connection(host = hostip,
username=userb,
cnopts=Cnopts)
lpath='c:\\test.txt'
rpath='apps/wordpress/htdocs/mytheme/test.txt'
srv.put(lpath,rpath)
srv.close()
我也有同样的问题。以下是我为解决以下问题而采取的步骤:
.pem
文件的文件夹ssh-i“keyfile.pem”USERNAME@IP_OF_INSTANCE
如果您尝试使用PuTTy来执行此操作,pysftp将无法定位SSH条目,因为PuTTy将它们存储在Windows注册表中。相反,您可以在Windows上安装并使用OpenSSH,然后在bash终端(如Git bash)中,您可以按照上面相同的3个步骤进行操作。最终实现了它。
已在win10上安装ubuntu。
使用ssh-i“key.pem”登录到awsuname@aws
它保存了已知的\u hosts文件。
必须使用ssh keygen和来自
以更正该文件。
最后将已知的_主机从/root/.ssh复制到c:/user/myname/.ssh和
不是从/home/.ssh/
所以代码现在是
awshost="www.xxxxxxx.com"
keyfile=r'C:\files\docs\1-AWS\LightsailDefaultKey-us-west-2.pem'
known=r'C:\Users\myname\.ssh\known_hosts'
cn = sftp.CnOpts(knownhosts=known)
srv = sftp.Connection(host=awshost,
username='bitnami',
private_key=keyfile,
cnopts=cn)
而且它连接时没有任何错误,即来自Amazon web services的AWS有一个------BEGIN RSA私钥------MiieowibaakCaqeay您仍然没有抓住要点。这不是一个解决办法。通过设置
Cnopts.hostkeys=None
禁用主机密钥验证,什么是安全漏洞。并不是说“Filezilla工作”是这样的。您可以在任何SFTP服务器上执行此操作,但这是错误的。非常感谢您的帮助,我们将在下周尝试此操作,最终使其正常工作。已在win10上安装ubuntu。使用ssh-i“key.pem”登录到awsuname@aws它保存了已知的_hosts文件。必须从