me gustaría usardputpara cargar un paquete en un PPA de plataforma de lanzamiento a través de sftp. Después de preparar los datos, todo funciona bien hasta
please login: To accept ssh-rsa hostkey 6b03de9833252318a646b34722cd54f2 for ppa.launchpad.net type "yes": [yes, no]:
Escribir yes
funciona, pero es imposible hacerlo como cronjob.
¿Cómo omitir la verificación de la clave de host en dput?
Respuesta1
dput-ng
está usando python-paramiko
, que no usa OpenSSH (por lo tanto, los ~/.ssh/config
cambios no se reflejan; fuera de discusión también están las sugerencias para deshabilitar la verificación estricta de la clave del host cuando es su única forma de verificar que se está conectando al host que cree). Pero está usando elHosts conocidos de OpenSSHstore, por lo que debería poder descargar las claves del host del servidor usando ssh-keyscan,verificarlos manualmente, guárdalos en esta tienda y luego conéctate sin ningún problema:
$ 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==
y pegue la línea en el ~/.ssh/known_hosts
. Atajo:
$ ssh-keyscan ppa.launchpad.net >> ~/.ssh/known_hosts
Entonces deberías poder conectarte sin ningún problema.
Respuesta2
Current dput-ng
tiene un método llamado secure_sftp
que usa openssh
en lugar de paramiko
.
No está documentado, está marcado como experimental y no funciona python < 3.2
, pero a mí me funciona.