Conectar sin contraseña por SSH a un servidor
Anuncio:
En esta ocasión vamos a ver cómo conectar sin contraseña por SSH a un servidor de forma segura.
En primer lugar vamos a generar una llave en nuestra máquina, desde donde queremos conectar. Para esto, abrimos nuestra terminal y hacemos:
ssh-keygen -b 4096
Esto nos va a generar una llave tipo RSA de 4096 bits. Todo lo que nos pregunte lo podemos dejar por defecto vacío y pulsar enter. Podemos ver la llave generada con:
ls .ssh/
La llave pública es id_rsa.pub y la privada es id_rsa. Ten en cuenta que la llave privada nunca debes compartirla. Una vez creada, vamos a copiar la llave pública a nuestro servidor con:
ssh-copy-id -i .ssh/id_rsa.pub user@IP_SERVER
Aquí, nos pedirá la contraseña de nuestro usuario y listo. Lo que hace este comando es meter la llave pública en .ssh/authorized_keys del home del usuario que estemos usando para conectar por ssh al servidor.
Desde este momento podemos conectar sin contraseña por SSH a un servidor con:
ssh user@IP_SERVER
Una vez realizado esto, la idea es deshabilitar el acceso por contraseña a nuestro servidor, como medida de seguridad, de modo que solo aquellas máquinas que tengan configurada su llave pública en el servidor puedan conectar.
Para desactivar el acceso por ssh con contraseña en nuestro servidor vamos a editar el siguiente archivo:
sudo nano /etc/ssh/sshd_config
Aquí vamos a buscar el parámetro PasswordAuthentitation, si está comentado lo descomentamos y ponemos el valor no
PasswordAuthentitation no
Guardamos los cambios y reiniciamos el servicio:
sudo /etc/init.d/ssh restart
Y listo, ya no nos va a dejar ingresar por ssh con usuario y contraseña. Solo aquellas máquinas con la llave pública autorizada podrán hacer login por ssh. Esto es una muy buena práctica de seguridad para nuestros servidores.
También te puede interesar ver cómo conectar a un servidor por ssh usando un certificado PEM.
Puedes aprender sobre el tema en nuestra sección de Linux.
Espero que te haya sido de utilidad!