Estoy intentando hacer un github.git tirardesde un script php como usuario de www-data y aparece el mensaje "Error en la verificación de la clave del host". Mi usuario principal tiene la clave de host registrada, pero mi www-data no, ya que ni siquiera tiene acceso al directorio ~/.ssh.
¿Existe todavía un archivo de hosts conocidos en todo el sistema en Ubuntu 18.04? Supongo que no sería seguro darle acceso al usuario de www-data a mi~/.ssh-¿directorio?
Respuesta1
Como sugirió @GMaster, usar HTTPS en lugar de SSH para una extracción automatizada parece la opción más sensata. Pero, si realmente necesita usar el protocolo ssh (¿por qué?), tiene algunas opciones con las que lidiar known_hosts
y credenciales:
Cree el árbol, incluido un directorio de inicio previamente
~/.ssh
completado (en mi sistema es , pero consulte el suyo en ). Puede crear el archivo usted mismo conectándose y verificando la clave del host manualmente. Solo asegúrese de que dichos archivos y directorios tengan los permisos y la propiedad adecuados (generalmente 0700/0600).known_hosts
www-data
/var/www
/etc/passwd
Tenga este archivo en otro lugar (con los permisos adecuados) y apúntelo usando
-o UserKnownHostsFile=/path/to/known_hosts
Para los dos enfoques anteriores, juegue con
-o StrictHostKeyChecking
varias opciones y-o UpdateHostKeys
equilibre entre seguridad y conveniencia.Como último recurso, puede deshabilitar completamente la validación de la clave de host para www-data, ya sea en
/var/www/.ssh/config
o con opciones de línea de comandos-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
. Sólo tenga en cuenta las graves implicaciones de seguridad que esto implica.
Y, reforzando lo que ya sospechaba: bajo ninguna circunstancia dé a www-data (ni a ningún otro) acceso a su archivo ~/.ssh
. Recuerda tuprivado¡Las llaves también están ahí!
Respuesta2
Sí, de hecho existe un archivo de hosts conocido en todo el sistema, que de forma predeterminada es /etc/ssh/ssh_known_hosts
. Puede ejecutar man ssh_config
y buscar GlobalKnownHostsFile
para ver el valor predeterminado en su sistema. También puedes cambiar el valor de esta opción como de costumbre (con -o
) si lo deseas.