Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Inicio de sesión sin contraseña SSH: ¿Cómo configurarlo y deshabilitarlo en Linux?

SSH-Passwordless-Login-How-to-Setup-and-Disable-it-in-Linux
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

Un buen administrador de servidores utiliza varias contraseñas seguras que son difíciles de memorizar; sin embargo, es difícil e inconveniente ingresar cada uno cada vez que accede a servidores remotos. Para superar este problema, en este tutorial, hablaremos sobre sin contraseña ¡SSH y cómo puedes configurarlo en Linux!

What is Passwordless SSH?

SSH sin contraseña le permite exportar un cliente SSH clave pública al servidor remoto para que el cliente pueda iniciar sesión sin necesidad de una contraseña. La forma de lograr esto es mediante el uso de un par de claves asimétricas.

El procedimiento de autenticación funciona de la siguiente manera:

Cuando el cliente intenta acceder al servidor SSH, el servidor primero verifica si la clave pública del cliente está autorizada. Si está autorizado, el proceso de autenticación continúa. Si no está autorizado, el proceso finaliza y no puede acceder al servidor.

Si el servidor autoriza la clave pública del cliente, el servidor cifra un mensaje con la clave pública del cliente. Una vez que el servidor ha cifrado el mensaje, lo envía al cliente.

El cliente recibe el mensaje del servidor. Una vez que se recibe el mensaje, el cliente intenta descifrar este mensaje con la clave privada. Si el cliente descifra el mensaje utilizando la clave privada, el servidor lo detectará y se establecerá la conexión con el servidor SSH. 

Si el cliente no puede descifrar el mensaje enviado por el servidor, se cancela el proceso de conexión con el servidor.

SSh
 Crédito de la imagen: Sebastián Saunier

Why use SSH Passwordless login

SSH sin contraseña ofrece varios beneficios sobre los métodos tradicionales de inicio de sesión basados ​​en contraseña. Algunos de los beneficios más importantes que hacen que valga la pena usar SSH sin contraseña son:

Inicio de sesión cómodo y seguro

El hecho de que no tendrá que recordar ni ingresar contraseñas para conectarse a un servidor SSH hace que el proceso de autenticación sea conveniente. Además, se basa en criptografía de clave pública-privada, lo que elimina el riesgo de robo de contraseñas a través de Hombre en el medio así como de otros ataques de phishing.

Automatice las tareas de copia de seguridad

Usando Rsync y otras utilidades, puedes automatizar la tarea de hacer una copia de seguridad semanal del contenido generado en una oficina en los Estados Unidos y guardarlo en una oficina ubicada en China. El proceso sería encriptado a través de SSH y completamente automático porque no tendrás que ingresar ninguna contraseña.

Montar un sistema de archivos remoto

SSH sin contraseña es útil si necesita montar un sistema de archivos remoto con SSHFS. Al acceder al servidor SSHFS sin contraseñas, podemos hacer que el servidor SSHFS se monte solo cuando iniciamos nuestro cliente.

Además, varios servidores git utilizan la autenticación de clave pública SSH. Por lo tanto, el par de claves asimétricas que crea para conectarse a un servidor SSH puede tener otros usos, como autenticarse mientras se conecta a nuestro servidor Git.

Setup SSH Passwordless Login in Linux

#1. Asegúrese de que el servidor y el cliente SSH estén instalados

Lo primero que tienes que hacer es asegurarte de que el sistema que actuará como servidor tenga instalado un servidor SSH. Para ello, tenemos que abrir una terminal y teclear el siguiente comando:

sudo apt-get install openssh-server

Si no se instala ningún paquete nuevo en nuestro sistema operativo, el equipo que hará de servidor ya tiene instalado y funcionando el servidor SSH. Del mismo modo, asegúrese de que el sistema que actuará como cliente tenga los paquetes necesarios para conectarse al servidor SSH. Para hacer esto, abra una terminal y escriba el siguiente comando:

sudo apt-get install openssh-client

Hoy en día, la mayoría de las distribuciones de Linux tienen un cliente y un servidor SSH instalados de forma predeterminada. 

#2. Crear los pares de claves asimétricas

Una vez que esté seguro de que el servidor SSH y el cliente tienen los paquetes necesarios, puede generar las claves asimétricas para acceder a nuestro servidor SSH sin ingresar ninguna contraseña.

Para hacer esto, en la computadora que actuará como cliente, debe abrir una terminal y escribir el siguiente comando:

ssh-keygen -b 4096 -t rsa

El significado de cada uno de los parámetros del comando es el siguiente:

ssh-keygen: es el comando que genera el par de claves.

-b 4096: estás indicando que la clave asimétrica a generar tiene un tamaño de 4096 bits. Otros tamaños que puedes elegir, por ejemplo, son 1024 o 2048.

-t rsa: Indica que el algoritmo utilizado para generar el par de claves debe ser RSA. Otros algoritmos que podemos utilizar son DSA, ECDSA, RSA1 y ED25519.

Inmediatamente después de ejecutar el comando, se le preguntará la ubicación donde desea guardar las claves y el nombre que desea darles. Simplemente presione la tecla Intro. De esta forma, las claves que se guardarán en la ubicación estándar, es decir, /inicio/ usuario /.ssh/ y tendrá el nombre estándar que id_rsa.

A continuación, se le preguntará si desea ingresar una contraseña para cifrar la clave privada. Como queremos conectarnos al servidor sin ingresar ninguna contraseña, presione la tecla Enter sin ingresar ninguna contraseña.

Finalmente, se le pide que vuelva a ingresar la contraseña. Como no hemos ingresado ninguna contraseña, presione la tecla Enter nuevamente.

keygen-png

Después de realizar estos pasos, las claves asimétricas se crearán en la ubicación ~/.ssh. 

#3. Copie la clave pública SSH en el servidor remoto

Hay dos tipos de Llaves SSH para organizar el acceso sin contraseña a través de SSH: una clave pública no secreta (una clave pública) y una clave secreta (una clave privada), id_rsa  es su clave privada, y  id_rsa.pub es su clave pública.

Debe copiar la clave pública en el servidor remoto, ya sea usando el comando ssh-copy-id o manualmente.

La sintaxis típica para el comando de copia de clave pública SSH es la siguiente.

ssh-copy-id   username@remote.host.name

El siguiente ejemplo puede ser más claro:

ssh-copy-id   root@192.168.1.6
copia

Una opción alternativa es iniciar sesión en el servidor remoto y crear un archivo de texto en el directorio ~/.ssh, por ejemplo, ejecutando el siguiente comando.

nano ~/.ssh/authorized_keys

Copie el contenido de su archivo ~ / .ssh / id_rsa.pub en su máquina local en este archivo, guarde el archivo y salga del editor de texto.

sintaxis

#4. Prueba de acceso sin contraseña a través de SSH

Para probar si el SSH sin contraseña simplemente intente acceder al servidor SSH:

$ ssh remote_username@server_ip_address

Si todo salió bien, iniciará sesión inmediatamente sin ninguna contraseña.

Disable SSH Passwordless Login in Linux

Para deshabilitar el inicio de sesión sin contraseña de SSH, abra el archivo de configuración de SSH con su editor de texto preferido. En la mayoría de las distribuciones, el archivo de configuración se encuentra en /etc/ssh/sshd_config.

Localice la línea que dice PermitEmptyContraseñas si y cambio PermitEmptyPasswords sí a PermitEmptyPasswords no.

Guarde los cambios en el archivo de configuración y salga del editor de texto.

Reinicie el SSH para aplicar los cambios:

sudo systemctl restart sshd 

Palabras finales

Las contraseñas, por complicadas que sean, son menos seguras, y cuando tienes muchos servidores o tienes que iniciar sesión con frecuencia, el proceso se vuelve ineficiente. La autenticación ssh sin contraseña con claves asimétricas no solo es más conveniente sino también más segura y lo protege contra ataques de phishing. 

También puede explorar Cifrado simétrico.

Gracias a nuestros patrocinadores
Más lecturas excelentes sobre Linux
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder