¿Archivo de hosts conocidos en todo el sistema?

¿Archivo de hosts conocidos en todo el sistema?

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_hostsy credenciales:

  • Cree el árbol, incluido un directorio de inicio previamente ~/.sshcompletado (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_hostswww-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 StrictHostKeyCheckingvarias opciones y -o UpdateHostKeysequilibre 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/configo 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_configy buscar GlobalKnownHostsFilepara 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.

información relacionada