¿Por qué la clave pública del servidor ssh no se ve como la clave en los hosts conocidos del cliente?

4

Desde mi ingenuo entendimiento de ssh, el servidor comparte su clave pública ( /etc/shh/ssh_host_rsa_key.pub ) con el cliente, quien luego la agrega a la lista de hosts conocidos ( /user/.ssh/known_hosts ). Por lo tanto, esperaría que si miro esos dos archivos para ver una cadena larga e idéntica en ambos (la "clave"). Cuando comparo el texto en estos dos archivos, puedo ver una cadena que es igual al principio pero luego se vuelve diferente. ¿Por qué no puedo ver la misma cadena larga en ambos archivos (que asumiría que es la clave)?

    
pregunta kotozna 19.06.2015 - 18:24
fuente

2 respuestas

1

Para privacidad.

Con las versiones modernas de OpenSSH, el archivo known_hosts en el cliente contiene un hash del nombre del servidor y público clave, en lugar del nombre y la clave pública directamente. La razón para solo almacenar un hash es que si alguien obtiene una copia de este archivo (por ejemplo, la copia de seguridad filtrada), no pueden descubrir qué servidores están registrados, es decir, no pueden descubrir a qué sitios se conectó. Por supuesto, pueden verificar las conjeturas: eso es inevitable ya que el cliente legítimo debe poder hacer esto.

La utilidad ssh-keygen tiene algunas opciones para manipular las entradas known_hosts , pero por supuesto no puede convertir un hash al formato no hash. Puede configurar HashKnownHosts no en la configuración de su cliente ( ~/.ssh/known_hosts ) para desactivar el hashing, luego las entradas estarán en un formato donde la clave pública esté claramente visible.

    
respondido por el Gilles 12.09.2016 - 11:00
fuente
0

Para mí, contiene la misma cadena. el servidor tiene:   ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLmw2JjbKMO5LXTcJ67et6TBZeLff1WghM6koKjiHGh+gBbZzHrhDj20MuTxTB1kaTYh7f9T2G/zmhVpFMyUUoQ=

y el cliente tiene

|1|some_base64|more_base64 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLmw2JjbKMO5LXTcJ67et6TBZeLff1WghM6koKjiHGh+gBbZzHrhDj20MuTxTB1kaTYh7f9T2G/zmhVpFMyUUoQ= .

man sshd dice, en parte:

  

FORMATO DE ARCHIVO SSH_KNOWN_HOSTS

     

Cada línea en estos archivos contiene los siguientes campos: marcadores (opcionales), nombres de host, bits, exponente, módulo, comentario. Los campos están separados por espacios.

     

los nombres de host se pueden almacenar en forma de hash que oculta los nombres de host y las direcciones en caso de que se divulgue el contenido del archivo. Los nombres de host con hash comienzan con un carácter "|".

     

Los bits, el exponente y el módulo se toman directamente de la clave de host RSA; se pueden obtener, por ejemplo, de /etc/ssh/ssh_host_key.pub. El campo de comentario opcional continúa hasta el final de la línea y no se usa.

    
respondido por el Z.T. 19.06.2015 - 18:53
fuente

Lea otras preguntas en las etiquetas