跳過 dput/sftp 中的主機金鑰驗證

跳過 dput/sftp 中的主機金鑰驗證

我想用輸出透過 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,但它對我有用。

相關內容