¿Existe un riesgo de seguridad al divulgar su archivo SSH known_hosts?

32

Estoy hablando en una conferencia la próxima semana sobre algunas herramientas de software que he creado. Mi computadora portátil se mostrará en la pantalla de un proyector durante esta presentación. La presentación se grabará en video y se publicará en youtube. Si, por alguna razón, tengo la oportunidad de abrir y editar mi ~/.ssh/known_hostsarchivo durante esta presentación, ¿debo desconectar el proyector mientras lo hago? ¿Existe algún riesgo de seguridad al revelar mi archivo known_hosts?

Matt Korostoff
fuente
77
¿Por qué no simplemente reemplazar su real known_hostspor uno falso durante la presentación?
Sven
1
... o si no verifica la huella digital del host en primer lugar, use algo como ssh -oUserKnownHostsFile=/dev/null -oStrictHostKeyChecking=no user@hostomitir la pregunta de huella digital y evitar verificaciones en contra de hosts_ conocidos.
Lekensteyn
@Sven, el archivo known_hosts no es parte de la presentación per se, solo que el software que estoy demostrando ocasionalmente requiere que edite mis known_hosts. La audiencia no necesita ver esto (así que usaré la edición a ciegas como han sugerido varios comentaristas aquí), pero editar un archivo falso conocido_hosts simplemente no lograría mi objetivo.
Matt Korostoff

Respuestas:

43

El archivo known_hosts contiene las claves públicas de confianza para los hosts a los que se conectó en el pasado. Estas claves públicas se pueden obtener simplemente intentando conectarse a estos hosts. Por lo tanto, no es un riesgo de seguridad per se.

Pero: contiene un historial de hosts a los que se conectó. La información puede ser utilizada por un atacante potencial para la infraestructura de la organización de huella, por ejemplo. También informa a los posibles atacantes que probablemente tenga acceso a ciertos hosts y que robar su computadora portátil también les dará acceso.

Editar: para evitar mostrar su archivo known_hosts, le recomiendo que use la ssh-keygenutilidad. ssh-keygen -R ssh1.example.orgpor ejemplo, elimina las claves de confianza ssh1.example.orgde sus conocidos_hosts.

Ricardo
fuente
15

No hay nada particularmente peligroso en esto. Sin embargo, es posible que no desee divulgar esta información de identificación. A veces, la existencia de hosts revela buenas líneas de ataque para aquellos inclinados. Puede utilizar HashKnownHostso puede editar el archivo sin mirarlo.


Edición a ciegas:
sed -i 25d .ssh/known_hostsborrará la línea 25 sin poner ningún contenido en la pantalla.

HashKnownHosts
Indica que ssh (1) debe cambiar los nombres de host y las direcciones cuando se agregan a ~ / .ssh / known_hosts. Estos nombres hash pueden ser utilizados normalmente por ssh (1) y sshd (8), pero no revelan información de identificación si se revela el contenido del archivo. El valor predeterminado es "no". Tenga en cuenta que los nombres y direcciones existentes en los archivos de hosts conocidos no se convertirán automáticamente, sino que se pueden cifrar manualmente utilizando ssh-keygen (1).

84104
fuente
44
En lugar de calcular manualmente el número de línea y eliminarlo con sed, también puede usarlo ssh-keygen -R example.com.
Lekensteyn
44
También puede usar ssh-keygen -H -f ~/.ssh/known_hostspara trocear todos los nombres / direcciones en el archivo.
Barmar