¿Te gustaría usar ssh sin tener que escribir la contraseña? SSH es un protocolo seguro que permite comunicarse con un servidor linux a través de la línea de comandos para realizar varios tipos de mantenimiento. Nos gustaría conectarnos usando esta sintaxis:
usuario ssh@remotehost
Pero para conectarse se nos pide la contraseña de acceso y sólo después se nos conecta. Se vuelve frustrante escribir la contraseña cada vez, y si quisiéramos hacer scripts que automatizaran un cierto proceso para simplificar algunas tareas no tendríamos una tarea fácil.
Por esta razón tenemos las llaves de SSH para ayudarnos. Así que veamos cómo generar un par de claves SSH públicas y privadas en tu máquina, y luego exportar la clave pública al servidor remoto. De esta manera podemos autentificar nuestra llave remota, asegurándonos de que las nuevas conexiones se hagan sin la solicitud de ninguna contraseña.
Supongamos que el servidor remoto se encuentra en la dirección IP 192.168.1.2 y asumamos que tiene una cuenta llamada máquina remota.
Como se ha dicho antes, primero debemos generar un par de claves en nuestro ordenador local (n.b.: a petición de la frase de contraseña se deja vacía, de lo contrario todavía se me preguntaría en el primer inicio de sesión de cada sesión):
alai@mac:~$ ssh-keygen -t rsa Generando par de llaves rsa públicas/privadas. Ingrese el archivo en el que se guarda la clave (/home/alai/.ssh/id_rsa): Ingrese la frase de contraseña (vacía por no tener una frase de contraseña): Ingrese nuevamente la misma frase de contraseña: Su identificación ha sido guardada en /home/alai/.ssh/id_rsa. Su clave pública ha sido guardada en /home/alai/.ssh/id_rsa.pub. La clave de la huella digital es:
En este punto puedo copiar la clave pública que acabo de generar en el servidor remoto, usaré el comando scp que permite a través del protocolo ssh la copia de los archivos.
cd ~/.ssh/ scp id_rsa.pub userremote@192.168.q.2:./id_rsa.pub
Me piden nuestra contraseña remota, para poder copiar el archivo. Ahora me conecto en ssh en la máquina remota y realizo las operaciones necesarias para completar la instalación de la llave pública.
ssh userremote@192.168.1.2
Una vez conectado, ejecuto los siguientes comandos:
cd .ssh touch authorized_keys2 chmod 600 authorized_keys2 cat ../id_rsa.pub >> authorized_keys2 rm ../id_rsa.pub
¡Lo hemos conseguido! Ahora nuestras nuevas sesiones de SSH en el servidor remoto se ejecutarán automáticamente sin necesidad de escribir la contraseña. ¡Trata de creer!