En este tutorial veremos cómo poner las llaves SSH en tu dispositivo local y usar el generador par de llaves de conexión en un servidor remoto. Este método es más recomendado y brinda una forma mucho más segura de conectarse con el servidor/maquina remota que usando una simple contraseña.
Tabla de contenidos
¿Qué necesitas?
Antes de continuar leyendo este tutorial debes de saber lo que necesitaras:
- Acceso a tu dispositivo local.
- Acceso a tu dispositivo remoto.
- Una terminal compatible con conexión SSH.
Generar las llaves SSH
Puedes generar y usar llaves RSA en sistemas Linux/Unix usando cualquier tipo de Terminal en tu dispositivo local.
Luego de seleccionar a la Terminal se te abrirá una ventana igual (o muy similar) a esta:
En la Terminal podrás escribir los comendaos necesarios para empezar el proceso:
Lo primero que tendrás que hacer es generar un par de llaves en tu dispositivo local. Puedes generarlas usando este simple comando:
ssh-keygen -t rsa
Una vez que hayas ingresado este comando, te aparecerán algunas preguntas:
Enter file in wich to save the key (/home/tautvydas/.ssh/id_rsa):
Por lo general se recomienda simplemente dejarlo tal y como esta y presionar Enter sin escribir nada, de forma que el generador de llaves pueda crear un par de llaves en la ubicación predeterminada, pero en este tutorial ingresamos un nombre diferente tut_id para evitar que se dupliquen llaves, dado que el equipo ya tiene llaves id_rsa generadas.
La segunda pregunta que verás es:
Enter passphrase (empy for no passphrase):
Luego:
Enter same passphrase again:
Ahora, dejaremos esos sin alterar. De esta forma, luego de poner las llaves con el servidor remoto, no necesitaras usar ninguna llave o algun tipo de contraseña para poder ingresar.
Simplemente ingresaras el comando ssh user@serverip y podrás ingresara siempre y cuando las llaves estén puestas de forma correcta. Pero en caso de que necesites más seguridad, siempre puedes ingresar una Frase de Contraseña (passphrase) en esta sección. Si eliges esta opción, tendrás que ingresar una contraseña cada vez que te quieras conectar desde un dispositivo remoto.
Básicamente así se hace, ahora verás la terminar de esta forma:
Es normal que tu Terminal se vea un tanto distinta al igual que el fingerprint.
ADVERTENCIA: Se generarán dos llaves (Privada y Pública); tut_id y tut_id.pub (en tu caso id_rsa e id_rsa.pub). Debes de tener mucho cuidado con la llave privada (id_rsa), mantenla en tu dispositivo local y no se la des a nadie.
Otro archivo id_rsa.pub debe de subirse al dispositivo remoto. Por ejemplo, si tú y un compañero están trabajando en el mismo proyecto en el mismo servidor remoto, los dos pueden poner tu llave publica en un servidor remoto. A continuación, veremos cómo hacer eso:
2.- Copiar tu llave pública en un servidor remoto
Después de generar tus llaves RSA, tienes que publicar tu llave pública en un servidor virtual remoto.
Hay un comando muy simple para poner tu llave publica directamente en el servidor remoto usando authorized_keys (llaves_autorizadas), este archivo tiene todas las llaves públicas:
ssh-copy-id user@serverip
Aquí, en lugar de usar serverip, tienes que ingresar la dirección IP del servidor remoto, y en lugar de user, tienes que ingresar el nombre de usuario del servidor con el que te contactaras.
Luego de ingresar el comando verás una Advertencia similar a la siguiente:
The authenticity of host ‘Server’s IP address’ can’t be established.
RSA key fingerprint is …
Are you sure you want to continue connecting (yes/no)?
Escribe yes en la línea de comando y presiona Enter. Este mensaje te aparecerá solo la primera vez que hagas esto.
A continuación, verás otro mensaje que dice:
Warning: Permanently added ‘SERVER IP’ (RSA) to the list of known hosts.
user@serverip's password:
Aquí tienes que ingresar la contraseña del servidor remoto de usuario (generalmente el nombre de usuario es root). Luego de ingresar la contraseña, deberías de haber terminado.
Ahora se generará un mensaje que dice:
Now try logging into the machine, with “ssh ‘user@serverip’”, and check in:
~/.ssh/authorized_keys*
to make sure we haven’t added extra keys that you weren’t expecting.
Ahora se ha añadido la llave púbica al servidor remoto, así que cada vez que entres a tu servidor remoto, no será necesario que ingresas la contraseña, a menos que hayas añadido una passphrase en la llave RSA.
Conclusión
Si tienes problemas con la instalación de las llaves SSH te esperamos en la sección de ayuda y con gusto te resolveremos todas tus dudas.