En la comunicación ssh entre el servidor y el cliente, el cliente se autentica mediante su clave privada. Quiero saber cómo sabe el servidor qué clave pública pertenece al cliente, si el servidor tiene más de 1 clave pública en sus authorized_keys
archivo.
Respuesta aceptada:
El cliente envía su ID de clave pública y el servidor verifica si esta clave está en la lista de authorized_keys
.
-
El cliente comienza enviando una ID para el par de claves con el que le gustaría autenticarse al servidor.
-
El servidor verifica el archivo authorized_keys de la cuenta en la que el cliente intenta iniciar sesión para obtener la ID de la clave.
-
Si se encuentra una clave pública con ID coincidente en el archivo, el servidor genera un número aleatorio y usa la clave pública para cifrar el número.
-
El servidor envía al cliente este mensaje cifrado.
Si el cliente realmente tiene la clave privada asociada, podrá descifrar el mensaje usando esa clave, revelando el número original.
https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process