Ich möchte verwendendputum ein Paket per SFTP auf ein Launchpad-PPA hochzuladen. Nach der Vorbereitung der Daten funktioniert alles einwandfrei, bis
please login: To accept ssh-rsa hostkey 6b03de9833252318a646b34722cd54f2 for ppa.launchpad.net type "yes": [yes, no]:
Durch Eintippen yes
klappt das, aber als Cronjob ist das nicht möglich.
Wie überspringe ich die Hostkey-Verifizierung in dput?
Antwort1
dput-ng
verwendet python-paramiko
, das nicht OpenSSH verwendet (daher ~/.ssh/config
werden die Änderungen nicht berücksichtigt -- ausgeschlossen sind auch die Hinweise, die strikte Hostschlüsselprüfung zu deaktivieren, wenn dies Ihre einzige Möglichkeit ist, zu überprüfen, ob Sie sich mit dem Host verbinden, mit dem Sie es meinen). Aber es verwendet dasBekannte OpenSSH-Hostsspeichern, so dass Sie die Server-Host-Schlüssel mit ssh-keyscan herunterladen können,Überprüfen Sie sie manuell, in diesen Store speichern und dann problemlos verbinden:
$ 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==
und fügen Sie die Zeile in die ein ~/.ssh/known_hosts
. Verknüpfung:
$ ssh-keyscan ppa.launchpad.net >> ~/.ssh/known_hosts
Anschließend sollte die Verbindung problemlos hergestellt werden können.
Antwort2
Aktuell dput-ng
gibt es eine Methode namens , die anstelle von secure_sftp
verwendet .openssh
paramiko
Es ist nicht dokumentiert, als experimentell gekennzeichnet und funktioniert nicht mit python < 3.2
, aber bei mir funktioniert es.