Hacer que los hosts ssh sean globales para todos los usuarios de la computadora


15

Entonces SSH tiene estos archivos que configuran los ajustes para un usuario específico.

~/.ssh/authorized_keys
~/.ssh/config
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
~/.ssh/known_hosts

Me gustaría globalizar algunos de estos archivos, como configy known_hosts. Para que otros usuarios (incluido el root ) puedan compartir los hosts configurados.

Cuál sería la mejor forma de hacer esto?

Respuestas:


21

Para ~/.ssh/configque pueda colocar configuraciones relevantes de todo el sistema en / etc / ssh / ssh_config de acuerdo con la página del manual :

ssh (1) obtiene datos de configuración de las siguientes fuentes en el siguiente orden:

  1. opciones de línea de comandos
  2. archivo de configuración del usuario (~ / .ssh / config)
  3. archivo de configuración de todo el sistema (/ etc / ssh / ssh_config)

Para cada parámetro, se utilizará el primer valor obtenido. Los archivos de configuración contienen secciones separadas por especificaciones de "Host", y esa sección solo se aplica a hosts que coinciden con uno de los patrones dados en la especificación.

Tenga en cuenta que solo se utilizará el primer valor, lo que significa que el usuario siempre puede anular las opciones de configuración de todo el sistema localmente.

Para ~/.ssh/known_hostsque pueda usar /etc/ssh/ssh_known_hostsu otro archivo especificado por la opción de configuración GlobalKnownHostsFile:

GlobalKnownHostsFile

Especifica un archivo para usar en la base de datos global de claves de host en lugar de / etc / ssh / ssh_known_hosts.

No estoy seguro de si es posible para los otros archivos, pero imagino que podría resolver algo con enlaces simbólicos si realmente también quisiera compartir claves privadas entre los usuarios.


1
Tienes un error tipográfico en tu cotización GlobalKnownHostsFile.
cjm

1
Puede configurar UserKnownHostsFile = / dev / null ssh nunca encontrará una clave válida dentro de los usuarios del archivo conocido_hosts, pero aún así el usuario puede aceptar una temporal.
Janning

1
@ Janning, parece que en realidad hay una IgnoreUserKnownHostsopción para eso (valores yeso no).
kael

Tenga en cuenta que el /etc/ssh/ssh_known_hostsarchivo global debe ser legible en todo el mundo. Estaba usando ssh-keygen -Hf /etc/ssh/ssh_known_hostspara repetir el mío después de agregar entradas manualmente, y parece que se estaba configurando solo para el propietario.
kael

1

Como root es todo poderoso, usaría un trabajo cron de root para copiar los archivos de otros usuarios. Los hosts conocidos y las claves autorizadas simplemente se pueden agregar. Si todo está en una partición, existe la opción de enlace duro. No estoy seguro de si los enlaces simbólicos funcionarían para los archivos, pero podría intentarlo también, solo tiene que colocarlos en un lugar compartido pero seguro.


2
Evitaría que los usuarios agreguen sus propios hosts, lo que en mi humilde opinión es un efecto no deseado.
Maciej Piechotka

Olvidé si un archivo de enlace duro tiene que tener los mismos permisos pero sospecho que sí. Sin embargo, puede copiar el archivo con cron y luego asegurarse de que los permisos sean correctos.
xenoterracida
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.