Configurar SSH keys

Hoy en día trabajar mediante SSH en servidores remotos es el pan de cada día. Para los que somos programadores y manejamos varios entornos, el proceso de autenticación se realiza varias veces cada hora. Tener que estar introduciendo la contraseña cada vez que nos conectamos hace que perdamos un tiempo muy valioso, porque encima si el sistema está debidamente configurado la contraseña no será nunca fácil de recordar.

Las claves SSH nos permiten conectarnos a los entornos sin tener que introducir la contraseña. Esto es fundamental no solo para ahorrar tiempo al que las utiliza, si no para poder ejecutar procesos automáticos sin supervisión, ya que de otro modo el proceso se interrumpiría en el momento que una contraseña es solicitada. Las claves SSH son una forma de garantizar una identidad concreta.

 

Tipos de clave

Existen dos tipos de clave para cada identidad, y por eso muchas veces escuchamos que les llaman el par:

  1. Clave privada: se trata de un fichero que tenemos nosotros (y sólo debemos tener nosotros) y que garantiza que somos quienes decimos ser. Todo el que la tenga podrá actuar en nuestro nombre, con el riesgo que eso implica.
  2. Clave pública: es la clave que le damos al servidor para que haga la comprobación contra nuestra clave privada. Si se han generado a la vez mediante el mismo algoritmo, el servidor será capaz de decir que esta clave pública corresponde con la clave privada que tenemos nosotros, y nos permitirá el acceso.

 

Generación de claves

Para generar nuestras claves en un entorno Linux debemos ejecutar el siguiente comando:

ssh-keygen

Si seguimos los pasos que nos marca el comando podremos ponerle un nombre a nuestra clave y nos pedirá una palabra para generarla (cuanto más larga, más segura). Estas dos configuraciones podemos saltarnoslas pulsando intro, y entonces cogerá los datos por defecto. Las claves generadas podremos encontrarlas en ~/.ssh.

 

Conectarse a un entorno remoto

Siguiendo en nuestro entorno local, accedemos a la carpeta ~/.ssh y abrimos el archivo id_rsa.pub:

cat ~/.ssh/id_rsa.pub

Lo que nos muestre ese comando debemos copiarlo porque lo vamos a necesitar. Ahora nos conectamos por SSH al servidor remoto en el que queremos instalar nuestra SSH key, y si todo va bien será la última vez que lo haremos metiendo la clave de forma manual. Una vez dentro generamos sus propias claves:

ssh-keygen

Y accedemos a editar el archivo (que todavía no está creado, pero lo creamos con el mismo comando) authorized_keys:

nano authorized_keys

 

En ese archivo pegaremos la clave pública de nuestra máquina. De ese modo le estamos diciendo que el ordenador cuya clave privada encaja con esa clave pública que acabamos de pegar, es un ordenador autorizado para poder acceder sin contraseña. Guardamos el archivo y salimos de la sesión SSH, y también de nuestra terminal local.

Ahora abrimos una nueva terminal (es necesario para que refresque las claves SSH) y nos conectamos con el comando SSH al servidor remoto. Si todo ha ido como es debido no nos habrá pedido la contraseña.

ssh -p PUERTO USUARIO@DIRECCIONIP

Experto en la Gestión de Proyectos Web basados en Drupal con más de 8 años de experiencia. Desarrollo Full Stack (Front-end, Back-end, Site-Builder).

No Replies to "Configurar SSH keys"