how to public key step by step

Cómo utilizar public keys con ssh y linux paso a paso

Hay infinidad de manuales, guías y tutoriales, sobretodo en inglés, pero desgraciadamente la mayoría de ellos requieren un mínimo de conocimientos para poder llevarlos a cabo y se dejan cosas que desde el punto de vista menos experimentado puede ser un poco crítico. En este artículo voy a explicar cómo utilizar ssh en linux sin contraseña mediante public keys.

Puede que no sea el tuyo, pero he visto unos cuantos casos en los que el usuario que pregunta ha seguido una serie de guías y manuales sin conseguir hacer funcionar las llaves públicas para ya bien ejecutar comandos o conectarse a un servidor a través de ssh sin utilizar contraseña.

Esto es lo que vamos a ver paso a paso en este tutorial en el que intentaré que de forma sencilla seas capaz de tener funcionando tus public keys en dos minutos y prácticamente sin pestañear.

Cómo utilizar ssh en linux sin contraseña

Para llevar a cabo este tuto voy primero a aclarar un par de cosas, ya que tendremos que tocar tanto en nuestra máquina local como en el servidor al que nos vayamos a conectar, así que vamos a ver las dos definiciones de los equipos que vamos a utilizar.

  • Cliente: será el equipo con el que nos vamos a conectar o desde el que vamos a enviar los comandos.
  • Servidor: será el equipo remoto sobre el que nos queremos conectar con el equipo cliente.

Le vamos a dar estos dos nombres ya que quiero que quede bien claro lo que hay que hacer en cada uno de ellos, por que es una cosa que no está muy clara en muchas guías, lo que podría provocar que se hiciera al revés.

  1. Cliente
    Accederemos a nuestro equipo con el usuario que ejecutará los comandos o se conectará sin la contraseña
  2. Cliente
    Ejecutaremos el siguiente comando

    como no queremos utilizar contraseña cuando nos pida una le daremos directamente al intro un par de veces para confirmar, y veremos que nos generará una especie de imágen en la consola así como nos avisará de que ha creado dos archivos
  3. Cliente
    Abriremos el archivo /root/.ssh/id_rsa.pub y copiaremos su contenido (también podemos si queremos cargarlo por ftp al servidor)
  4. Servidor
    Pegaremos el contenido del archivo que hemos copiado dentro del archivo /root/.ssh/authorized_keys, al ser una cadena de texto plano podremos hacerlo con el editor de texto que mejor nos convenga.
  5. Servidor
    Reiniciaremos el servicio ssh

Problemas y soluciones en caso de fallos

Si no podemos copiar el contenido para pegarlo encima del archivo authorized_keys bastará con que subamos al servidor por ftp, sftp, rsync, etc, nuestro archivo id_rsa.pub generado en el cliente.

Una vez subido podemos entrar en la consola del servidor, navegar hasta la carpeta donde hayamos subido el archivo con el comando ‘cd‘ y ejecutar lo siguiente:

Este comando copiará el contenido de nuestro archivo id_rsa.pub a una nueva línea en el archivo authorized_keys (recuerda, esto en el servidor donde has subido el archivo). Luego reinicia ssh (servidor).

Otro problema es que tengamos los permisos de los ficheros de forma incorrecta, cosa que también puede provocar errores como:

Esto lo solucionaremos ejecutando en el servidor los siguientes comandos para poner los permisos correctamente:

Otra cosa que nos puede pasar es que esté desactivado el acceso remoto con clave de autenticación, por lo que tendremos que activarlo. Para ello en el servidor editaremos el archivo de configuración de ssh:

y deberemos descomentar las siguientes líneas para que queden como a continuación:

Como para el resto de opciones debemos reiniciar el servidor de ssh para que los cambios surtan efecto. Después de esta serie de soluciones al intentar conectar desde el cliente al servidor ya no debería pedirnos contraseña, como mucho una confirmación de que nos queremos conectar de esa forma, que quedará guardada y no será necesario volver a confirmar.

Cómo configurar el acceso por clave pública con putty

Ahora ya sabes cómo generar claves públicas y privadas, y colocarlas en el servidor donde vas a realizar la conexión. Pero si estás trabajando con una máquina en windows y quieres conectarte como cliente a un servidor en linux desde putty necesitarás configurar la conexión.

Para esto te dejo aquí este otro tutorial: Cómo configurar putty con clave pública y privada para acceder a linux.

En este artículo te enseño a utilizar las claves para poder conectar con putty sin tener que poner una contraseña. Una vez lo tengas hecho es recomendable que guardes las claves a buen recaudo y desactives la posibilidad de conectar al servidor con nombre de usuario y password para aumentar la seguridad.

¿Usas claves públicas? Si te han dado problemas comenta cómo lo has solucionado.

Léete también  Cómo cambiar entre versiones de php en Linux

AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.