Я хотел бы использоватьdputдля загрузки пакета на launchpad PPA через sftp. После подготовки данных все работает отлично, пока
please login: To accept ssh-rsa hostkey 6b03de9833252318a646b34722cd54f2 for ppa.launchpad.net type "yes": [yes, no]:
Печатание yes
помогает, но сделать это с помощью cronjob невозможно.
Как пропустить проверку ключа хоста в dput?
решение1
dput-ng
использует python-paramiko
, который не использует OpenSSH (поэтому ~/.ssh/config
изменения не отражаются — также не стоит забывать о подсказках отключить строгую проверку ключа хоста, когда это ваш единственный способ убедиться, что вы подключаетесь к тому хосту, к которому, как вы думаете, подключаетесь). Но он используетИзвестные хосты OpenSSHstore, поэтому вы сможете загрузить ключи хоста сервера с помощью 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
В Current dput-ng
есть метод, secure_sftp
который использует openssh
вместо paramiko
.
Он не документирован, помечен как экспериментальный и не работает с python < 3.2
, но у меня работает.