Escenario
Un cliente quiere enviarnos ficheros usando el protocolo SFTP. Nos pide que la autenticación se haga por medio de intercambio de claves. Nuestro servidor corre en un Ubuntu 18.04
Problema
En realidad no lo es. Lo hubiera sido en caso de que el cliente hubiera preferido una autenticación de tipo usuario/contraseña. ¿Cómo le hacemos llegar las credenciales de manera segura al cliente?
Solución
Al utilizar un modelo de clave pública/privada, basta que el cliente nos haga llegar su clave pública, por ejemplo por email. Estos son los pasos a seguir:
-
El administrador del servidor crea un clave pública/privada para su servidor. La clave pública es automáticamente enviada al cliente cuando éste se conecta.
-
El cliente crea una clave pública/privada. Si su sistema operativo es Linux, lo podría hacer con este comando:
-
El cliente envía la clave pública (id_rsa.pub) al administrador del servidor por email. No es necesario que esté cifrada.
-
El administrador del servidor añade la clave pública a la lista de claves de confianza, añadiendo el contenido al final del fichero .ssh/authorized_keys
-
El administrador del servidor modifica la cuenta de usuario en el servidor para que pueda usar uno de estos modelos de autenticación: contraseña y clave pública, o solo clave pública.
-
La próxima vez que se conecte el cliente podrá hacerlo usando su clave privada.