Cómo conectarse a través de SSH sin contraseñas: La autenticación de la clave pública

stats con chris
2023-07-28
0

...

Detallamos los pasos a seguir para conectarnos remotamente de una computadora a otra vía SSH sin especificar la contraseña. Para ello hacemos uso de la autenticación de la clave pública basada en la encriptación RSA (Rivest–Shamir–Adleman).

Detallamos los pasos a seguir para conectarnos remotamente de una computadora a otra vía SSH sin especificar la contraseña. Para ello hacemos uso de la autenticación de la clave pública basada en la encriptación RSA (Rivest–Shamir–Adleman).

En el artículo: "Cómo conectarse a través de SSH a un dispositivo que está en la misma red", detallamos cómo conectarnos a través de SSH en una red local. Similarmente, en el artículo: "Cómo conectarse a través de SSH a un dispositivo remoto que está fuera de la red", detallamos cómo hacerlo cuando los dispositivos pertenecen a redes distintas. En ambos casos, sin embargo, al momento de conectarnos es necesario escribir la contraseña del usuario remoto. Esto puede ser un fastidio si uno suele conectarse constantemente al mismo dispositivo, por ende, un método más eficiente es usando la autenticación de la clave pública.

En este ejemplo vamos a considerar dos dispositivos que pertenecen a redes distintas. En la Fig. 1 representamos este sistema, donde los dispositivos son llamados office y hp. Lo que haremos será conectarnos desde el dispositivo office al dispositivo hp usando la autenticación de la clave pública, de esa forma evitaremos el uso de la contraseña de ortiz@hp.

Fig. 1: Dispositivos en redes distintas.

Un resumen de este artículo con algunos datos extras aparece en el siguiente video:

Los pasos a seguir son los siguientes:


1. Generar el par de claves SSH

Accedemos al directorio .ssh:

cd ~/.ssh

En caso no exista, ese necesario crearlo y darle los permisos adecuados:

mkdir ~/.ssh && chmod 700 ~/.ssh

Con el directorio creado, accedemos a él y escribimos lo siguiente:

ssh-keygen -t rsa -N "" -f nepy.key

Se generan dos claves, nepy.key y nepy.key.pub, las cuales puedes apreciar al listar el directorio:

ls
known_hosts  nepy.key  nepy.key.pub

2. Copiar la clave pública al dipositivo remoto

Nos conectamos vía SSH al dispotivo remoto. Para ello en el terminal escribimos:

ssh ortiz@87.123.243.210 -p 1132

En tu caso, debes elegir tu nombre de usuario, tu IP y el puerto externo correspondiente. Detalles sobre esta configuración vienen dados en el artículo: "Cómo conectarse a través de SSH a un dispositivo remoto que está fuera de la red". En caso consideres un nombre de dominio, basta reemplazar el IP por dicho nombre. Detalles sobre cómo configurar un nombre de dominio vienen dados en el artículo: "Cómo configurar un nombre de dominio gratuito para un IP dinámico". Una vez conectados a ortiz@hp, accedemos al directorio .ssh:

cd ~/.ssh

En caso el directorio no exista, lo creamos tal como hicimos previamente en el dipositivo office. En dicho directorio, creamos el archivo authorized_keys (en caso no exista):

touch authorized_keys && chmod 600 authorized_keys

Cerramos la sesión (Ctrl + D) para regresar al dispositivo office. En él, vamos al directorio .ssh y escribimos lo siguiente:

ssh-copy-id -i nepy.key.pub ortiz@87.123.243.210 -p 1132

Con ello la clave pública, nepy.key.pub, se ha copiado al archivo authorized_keys en ortiz@hp. Ten presente que puedes agregar múltiples claves al archivo authorized_keys, esto es común si quieres acceder a ortiz@hp desde múltiples dispositivos.


3. Acceder al dispositivo remoto

La autenticación de la clave pública ya está configurada. Para acceder a ortiz@hp, escribimos lo siguiente:

ssh -i ~/.ssh/nepy.key ortiz@87.123.243.210 -p 1132

En este caso, la contraseña de ortiz@hp ya no es requerida. Hemos logrado un acceso directo gracias a la autenticación de la clave pública. Si deseas simplificar aún más el acceso, existen dos métodos que puedes considerar, para entenderlos, te invito a leer los artículos: i) "Cómo conectarse a través de SSH sin escribir los parámetros de acceso: El bash alias" y ii) "Cómo conectarse a través de SSH sin escribir los parámetros de acceso: El archivo config".

Vistas: 1

stats con chris

Un escritor que aprendió a sumar

Un escritor que aprendió a sumar

Notificaciones

Recibe los nuevos artículos en tu correo electrónico

2022 © nepy

Un solo aliento

Configurar

Elige tu propio estilo

Color

Elige el modo que sea de tu agrado


Posición del Navegador

Elige el sistema de navegación


Estilo del Navegador

Elige el estilo del navegador vertical

Personalizar