我想用输出通过 sftp 将包上传到启动板 PPA。准备好数据后,一切正常,直到
please login: To accept ssh-rsa hostkey 6b03de9833252318a646b34722cd54f2 for ppa.launchpad.net type "yes": [yes, no]:
打字yes
可以解决问题,但不可能作为定时任务来完成。
如何跳过 dput 中的主机密钥验证?
答案1
dput-ng
正在使用python-paramiko
,它没有使用 OpenSSH(因此~/.ssh/config
不会反映更改 - 当这是验证您是否连接到您认为的主机的唯一方法时,也不可能提示禁用严格的主机密钥检查)。但它正在使用OpenSSH 已知主机存储,因此您应该能够使用 ssh-keyscan 下载服务器主机密钥,手动验证它们,将它们存储到此存储中,然后连接没有任何问题:
$ ssh-keyscan ppa.launchpad.net
# ppa.launchpad.net:22 SSH-2.0-Twisted
ppa.launchpad.net ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==
并将该行粘贴到~/.ssh/known_hosts
.捷径:
$ ssh-keyscan ppa.launchpad.net >> ~/.ssh/known_hosts
然后您应该能够毫无问题地连接。
答案2
Currentdput-ng
有一个名为 的方法,secure_sftp
它使用openssh
而不是paramiko
.
它没有记录,被标记为实验性的并且不能与 一起使用python < 3.2
,但它对我有用。