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
.
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
Notificaciones
Recibe los nuevos artículos en tu correo electrónico