当我在Linux Ubuntu中使用此命令sftp到服务器时:
sftp -b /path/sftp_put user@10.10.10.10
它的行为正确但在我的Python项目中使用调用时如:
call(["sftp", "-b","/path/sftp_put",'user@10.10.10.10'])
它不起作用并产生此错误:
Host key verification failed.
Couldn't read packet: Connection reset by peer
答案 0 :(得分:0)
第一次使用sftp / ssh连接到服务器时,通常会要求您确认服务器密钥指纹是否正确(可以在客户端设置中更改此行为)
例如:
ssh sftp02.domain.com
无法建立主机'ftp02.domain.com(10.90.229.2)'的真实性。 ECDSA密钥指纹是9c:4a:b3:1a:ce:a8:78:81:c6:a1:a1:8b:8f:c0:e0:27。 您确定要继续连接(是/否)吗?是
您必须确认并且密钥将添加到您的已知主机,并且在服务器密钥更改之前不会再次询问您。在这种情况下,服务器已重新安装,密钥重新生成或您被恶意重定向到其他服务器。
答案 1 :(得分:0)
由于sftp
是专用的ssh
命令,请尝试添加-oStrictHostKeyChecking=no
作为参数。我在MacOS上尝试了一下,它似乎起作用了:
警告:将“ sftp.example.com,1.1.1.1”(RSA)永久添加到已知主机列表中。
REF:https://askubuntu.com/questions/123072/ssh-automatically-accept-keys