Cómo generar una llave SSH (pubkey) para entrar en un servidor sin usar contraseña

Para acceder a un servidor Linux, siempre tienes que utilizar una contraseña. Es posible que necesites acceder muchas veces a un servidor o que tengas scripts que conectan con otros sistemas y, por temas de seguridad, no quieres que aparezca la contraseña en el propio script.

Para solucionar este problema, puedes generar una llave SSH pública (pubkey) y guardarla en el servidor al que quieres conectar para que entre ellos se comuniquen y comprueben que la llave es válida y puedas acceder sin contraseña.

La llave generada la puedes utilizar, además de para SSH, para conectarte por SFTP, SCP o rsync.

Esta llave ssh la puedes generar con un comando en la consola del servidor. Es importante aclarar que este comando tiene que ser ejecutado en el servidor origen, desde donde queremos conectarnos al otro servidor.

El comando para generar la llave es:

ssh-keygen

Lo primero que te preguntará es el sitio donde va a guardar la llave generada. Por defecto, se guarda en "/root/.ssh/id_rsa". Pulsa la tecla "Intro" para continuar.

Después te preguntará por una especie de clave que podemos introducir para que nos la pregunte cuando hagamos login en el destino (passphrase). Es algo similar a una contraseña. Sin embargo, como no quieres que te pregunte nada, deja vacío este paso y pulsa dos veces la tecla "Intro", hasta que deje de preguntarte por esta "passphrase".

ssh-keygen

ssh-keygen

Una vez hecho esto, se habrá generado el fichero que tienes que utilizar en el servidor destino para que te reconozca y no te solicite contraseña.

Si accedes al directorio /root/.ssh/, verás los ficheros generados:

  • id_rsa
  • id_rsa.pub

El primero es importante que no lo publiques en ningún sitio, ya que es la clave privada y debe estar siempre en este directorio. Esta clave servirá para hacer el emparejamiento con la llave pública (que necesitas copiar en el servidor destino).

El contenido del segundo fichero ("id_rsa.pub") será similar a:

ssh-rsa 

AAAAB3NzaC1yc2EAAAADAQABAAABAQDq5bmEpeVe3LURSt8VPfQEFYdv5ZNyv2aGjDC9fxG9foFwi/lgMUaHJ1111l4s9mnL8iEqYwoH8sahdskldasdkyklo/QHsGZR/qkHnBiUapRN5TJtvyFgCQi1unF9RUxtlqT18/27OhCm8TCyiP5I8sPB0qXPkxTjw40DnS/Zjt5vxaclhGyNt7p6wfyd9yJmCTa3+g4tIxKJS0theGiiT0h3qH2PMBu3YPxASUDHAS876XmpmGX3Ffoti2tqTW3Wi619g1K+F1YIhoroqa7E3kyyHn9imGjSayB+A4NRqhwv9RIdGPhAzxrVEJZIkpoURU7nCF6E+QrpZA7QhKF root@test

Este contenido es el que tienes que copiar en el servidor destino, concretamente en el archivo de autorización del usuario. Si, por ejemplo, es para el usuario root de un servidor linux, lo normal es que el archivo de autorización se encuentre en la siguiente ruta:

/root/.ssh/authorized_keys

Copia el contenido del fichero "id_rsa.pub" en una línea nueva de "authorized_keys". De esta forma, ya puedes acceder al servidor sin tener que introducir la contraseña.

¡Esperamos que os haya servido el tutorial!

No hay comentarios

Agregar comentario