Como Generar Las Llaves SSH
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.
¿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.
1.- 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.