Concha segura , conocido popularmente como SSH , es un protocolo de red seguro que permite a los usuarios conectarse de forma segura a hosts remotos, como servidores. Se basa en una arquitectura cliente-servidor y utiliza dos métodos de autenticación principales:contraseña y clave ssh autenticación de pares.
La clave SSH La autenticación de pares emplea el uso de claves SSH, que son claves criptográficas que se utilizan para autenticar y asegurar la comunicación entre el cliente y el servidor. Se prefiere la autenticación de par de claves SSH a la autenticación de contraseña, ya que proporciona una autenticación más segura que no es susceptible a ataques de fuerza bruta.
En este tutorial, ilustramos cómo puede configurar claves SSH en AlmaLinux .
Creación de un par de claves RSA SSH en AlmaLinux
Para comenzar el espectáculo, crearemos un RSA par de claves que comprende una clave pública y una privada. Desmitificaremos estas claves más adelante en la guía. Para crear el par de claves, ejecute el comando:
$ ssh-keygen OR $ ssh-keygen -t rsa
Los comandos anteriores crean un 2048 -bit par de claves RSA que se considera lo suficientemente bueno como para ofrecer un cifrado decente para asegurar la comunicación. Sin embargo, puede crear un 4096 -par de claves de bits que es más robusto y ofrece un mejor cifrado.
Para hacer esto, simplemente pase el -b
bandera. Esto es exactamente lo que vamos a hacer.
$ ssh-keygen -b 4096
Inmediatamente después de presionar ENTER , se le pedirá que proporcione la ruta en la que se almacenarán las claves. Por defecto, este es el ~/.ssh directorio. A menos que sea necesario cambiarlo a una ruta diferente, simplemente vaya al directorio predeterminado presionando ENTRAR .
A partir de entonces, se le pedirá que proporcione una frase de paso o una contraseña. Si bien es opcional, esto agrega una capa adicional de protección al autenticarse.
Sin embargo, esto es una limitación cuando desea configurar la autenticación de clave ssh sin contraseña en un host remoto. Si este es su objetivo, simplemente presione 'ENTER ’ para omitir el suministro de la frase clave.
Aquí está la salida completa del comando.
En este punto, sus claves deben almacenarse en ~/.ssh directorio que es un directorio oculto en su directorio de inicio. Solo para confirmar esto, ejecute el comando:
$ ls -la ~/.ssh
Algunos puntos a tener en cuenta:
- El id_rsa es la clave privada. Como sugiere el nombre, esto debe mantenerse extremadamente confidencial y nunca debe divulgarse ni compartirse. Un atacante puede comprometer fácilmente su host remoto una vez que obtenga la clave privada.
- El id_rsa.pub es la clave pública, que se puede compartir sin ningún problema. Puede guardarlo en cualquier host remoto al que desee conectarse.
Copiar la clave pública SSH al servidor Linux remoto
El siguiente paso es copiar o transferir la clave pública al servidor o host remoto. Puede hacerlo manualmente, pero el ssh-copy-id El comando le permite hacer esto fácilmente.
El ssh-copy-id El comando toma la siguiente sintaxis:
$ ssh-copy-id user@remote-host-ip-address
En nuestra configuración, tenemos un host remoto con IP 172.105.135.246 y un usuario remoto configurado llamado jack .
Para copiar la clave SSH pública ejecutaremos el comando:
$ ssh-copy-id [email protected]
Si esta es la primera vez que se conecta al host, obtendrá el resultado que se muestra a continuación. Para continuar con la autenticación, escriba ‘sí’ y presiona ENTRAR para proceder.
Una vez que proporcione la contraseña y presione 'ENTRAR ‘ la clave pública se coloca en el archivo_autorizado archivo en el ~/.ssh directorio en el host remoto.
En su sistema local, los hosts_conocidos el archivo se crea en el ~/.ssh directorio. El archivo contiene las huellas dactilares SSH de los hosts remotos a los que se ha conectado.
$ ls -la ~/.ssh
Puede verlo de la siguiente manera.
$ cat ~/.ssh/known_hosts
Inicio de sesión sin contraseña SSH para Linux remoto
Con la clave pública ahora guardada en el host remoto, ahora podemos iniciar sesión en el host remoto sin autenticación de contraseña SSH. Para probar esto, intentaremos iniciar sesión normalmente en el host remoto.
$ ssh [email protected]
Desde la salida, puede ver que inmediatamente bajamos al shell del sistema remoto. Esto confirma que hemos configurado correctamente SSH Autenticación sin contraseña.
Ahora confirme que la clave pública está guardada en authorized_keys archivo en el host remoto.
$ ls -la ~/.ssh/
Para ver el archivo, use el comando cat de la siguiente manera.
$ cat ~/.ssh/authorized_keys
Deshabilitar autenticación de contraseña SSH
Todavía no hemos terminado, la autenticación de contraseña aún está habilitada y esto puede potencialmente someter al servidor remoto o host a ataques de fuerza bruta.
Para eliminar este vector de ataque, se recomienda encarecidamente desactivar la autenticación de contraseña. Esto garantiza que el inicio de sesión solo sea posible a través de un par de claves SSH. Para lograr esto, abra el sshd_config que es el archivo de configuración principal de SSH.
$ sudo vim /etc/ssh/sshd_config
Localice la Autenticación de contraseña directiva. Si está comentado, descoméntalo y configúralo en 'no' .
PasswordAuthentication no
Guarde los cambios y salga del archivo.
Luego reinicie SSH para aplicar el cambio realizado.
$ sudo systemctl restart sshd
Esto deshabilita con éxito la autenticación de contraseña y solo los usuarios con la clave SSH privada pueden iniciar sesión.
En este punto, la autenticación de contraseña SSH se ha deshabilitado en el servidor remoto y la única forma posible de acceder al servidor remoto es a través de clave pública autenticación.
Hemos logrado configurar claves SSH en Almalinux e incluso siguió adelante para configurar la autenticación SSH sin contraseña utilizando el par de claves SSH. Además, inhabilitamos la autenticación de contraseña para evitar ataques de fuerza bruta.