Tutorial: Autenticación en SSH con clave pública

Este es un tutorial para que empecemos a usar claves públicas para autenticarnos. El único requisito es que hayamos ingresado a un servidor o host remoto con ssh. En nuestro ejemplo ese host tiene la ip 10.0.3.11.

i
1

El uso de autenticación por clave pública, tal como vimos en el post anterior tiene la ventaja de no tener que ingresar usuario y contraseña. Esto puede ser útil en casos en que necesitemos realizar alguna tarea en un host remoto de manera no interactiva. Por ejemplo podríamos crear una tarea programada que ejecute todos los días un script de backup. Veremos paso a paso como conseguirlo. Lo primero que tendremos que hacer es generar un par de claves. Para ellos ejecutaremos el siguiente comando: ssh-keygen

Como se ve en la imagen de abajo se nos preguntará la ruta de la clave privada, aceptamos la predeterminada presionando la tecla Enter.

y además se nos pedirá una passphrase. La passphrase es una frase que sea fácil de recordar para uno mismo, pero a la vez difícil de adivinar para otros. El propósito es cifrar la clave privada. Si te estás preguntando ¿para qué hacer todo esto si de todas maneras tendré que ingresa una passphrase para autenticarme. La respuesta es que tenemos técnicas como veremos un poco más abajo, para evitar la necesidad del ingreso de la frase una y otra vez. Ingresamos la frase una vez después de la otra:

Esto generará dos archivos en el directorio ~/.ssh: id_rsa y id_rsa.pub que son la clave privada y la clave pública respectivamente. Como sus nombres lo indican la clave privada no debe compartirse, en cambio la clave pública es la que nosirve para identificarnos como usuarios frente a otros hosts y se puede compartir.

En este momento tenemos que copiar la clave pública al host que funciona como servidor ssh. La manera más fácil y ráṕida de hacerlo es con el comando siguiente:

ssh-copy-id

Ingresamos la contraseña de root y luego presionamos la tecla Enter. Lo que hace este comando es agregar la clave pública del archivo id_rsa.pub al archivo /root/.ssh/authorized_keys del servidor ssh.

Ahora lo que hacemos es reemplazar la shell actual con el agente de ssh y re-ejecutando la shell bash. El agente de ssh será el encargado de guardar las claves privadas en memoria para que no tengamos que ingresar más de una vez la passphrase:

ssh-agent

Luego ejecutamos el comando ssh-add:

ssh-add

Se nos pedirá la frase, la ingresamos y le damos Enter.

ssh sin contraseña

A través de este tutorial mencionamos varios conceptos que podés ampliar recurriendo a los siguientes enlaces:


  1. Photo by Jametlene Reskp on Unsplash 

Comentarios

Comments powered by Disqus