En este tutorial, lo guiaremos a través de cómo configurar claves SSH en Rocky Linux .
Crear par de claves RSA SSH en Rocky Linux
Para empezar a crear un RSA par de claves en nuestro sistema local ejecute el siguiente comando:
$ ssh-keygen OR $ ssh-keygen -t rsa
De forma predeterminada, esto crea un RSA de 2048 bits par de claves que se considera lo suficientemente seguro para cifrar el tráfico entre el cliente y el host remoto.
Opcionalmente, puede crear un 4096 bits par de claves que es más grande y más seguro pasando el -b
opción de la siguiente manera:
$ ssh-keygen -b 4096
Después de ejecutar ssh-keygen comando, seguirá una serie de indicaciones. Primero se le pedirá que proporcione el archivo en el que se guardarán las claves. De forma predeterminada, las claves se guardan en el ~/.ssh
directorio en su directorio de inicio. Puede definir su archivo personalizado, pero en esta ilustración, usaremos los valores predeterminados
Entonces, presiona ENTER para guardar las claves en el ~/.ssh
directorio en su directorio de inicio.
Si las claves SSH ya existen, recibirá el siguiente mensaje y se le pedirá que las sobrescriba. Tenga cuidado aquí. Sobrescribir las claves significa que la autenticación no será posible utilizando las claves anteriores. Seleccionando 'Sí' destruye las claves actuales y genera otras nuevas.
A continuación, se le pedirá una frase de contraseña. Este es un paso opcional y proporciona una capa adicional de protección para impedir que los usuarios no autorizados utilicen las claves para la autenticación. Sin embargo, puede dejarlo en blanco si su intención es configurar la autenticación SSH sin contraseña entre su sistema local y otros hosts remotos.
Por ahora, dejaremos esto en blanco y presionaremos ENTER .
Finalmente, el par de claves SSH (public y privado keys) se guardará en su sistema local en la ruta especificada. Esta es la salida generada después de la ejecución exitosa del comando.
Con las opciones predeterminadas, SSH las claves se guardan en el ~/.ssh
directorio dentro de su directorio de inicio. Para confirmar esto, ejecute el comando:
$ ls -la ~/.ssh
- El id_rsa es la clave privada y debe mantenerse en secreto y confidencial. Divulgarlo puede conducir a una violación grave de su servidor remoto.
- El id_rsa.pub es la clave pública y se guarda en el host remoto al que desea conectarse.
Con SSH claves creadas con éxito, el siguiente paso será guardar el Público clave para el sistema remoto en preparación para la autenticación.
Copiar la clave pública SSH al servidor Linux remoto
El ssh-copy-id El comando proporciona una manera fácil y conveniente de copiar la clave SSH pública a un host remoto. Toma la siguiente sintaxis:
$ ssh-copy-id user@remote-host-ip-address
Tenemos un sistema remoto con un usuario regular llamado bob ya configurado. Para copiar la clave SSH pública, ejecute el comando:
$ ssh-copy-id [email protected]
Si se está conectando al host por primera vez, verá el siguiente resultado. Para continuar, escriba ‘yes’
y presione ENTER para continuar.
El comando sondea su sistema local en busca de la clave pública id_rsa.pub y una vez que establece su presencia, le solicita la contraseña del usuario remoto.
Escriba la contraseña y presione ENTER . La clave pública se copia en el host remoto en el ~/.ssh/authorized_keys
expediente. Llegaremos a esto más tarde.
En su sistema local, el ~/.ssh/known_hosts
se crea el archivo. Este es un archivo que contiene las huellas dactilares SSH para hosts remotos a los que se ha conectado.
Para ver el archivo, simplemente ejecute el comando:
$ cat ~/.ssh/known_hosts
Conexión a Linux remoto sin contraseña
En este punto, debería poder iniciar sesión en el host remoto sin una contraseña. Para intentarlo, intente iniciar sesión normalmente como lo haría.
$ ssh [email protected]
Esta vez, se le llevará inmediatamente al shell del host remoto.
Como mencionamos anteriormente, la clave pública se guarda en authorized_keys archivo en el host remoto. Puede confirmar esto como se muestra.
$ 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
El SSH la autenticación de clave pública se ha configurado correctamente. Sin embargo, la autenticación de contraseña aún está activa y esto hace que su host remoto sea susceptible a ataques de fuerza bruta.
Como tal, se recomienda encarecidamente deshabilitar la autenticación de contraseña. Ahora vuelva a iniciar sesión en el host remoto utilizando el usuario root o sudo. Luego abra el sshd_config archivo de configuración.
$ sudo vim /etc/ssh/sshd_config
Desplácese hacia abajo y localice PasswordAuthentication directiva. Si se comentó, descoméntalo y configúralo en 'no'
.
PasswordAuthentication no
Guarde los cambios y salga del archivo.
Para aplicar los cambios realizados, reinicie el sshd demonio como se muestra.
$ sudo systemctl restart sshd
En este punto, la autenticación de contraseña SSH se ha desactivado en el servidor remoto y la única forma posible de acceder al servidor remoto es a través de la autenticación de clave pública.
Hemos configurado correctamente SSH autenticación basada en claves en el host remoto que le permite iniciar sesión sin una contraseña. Esta es la forma más segura de iniciar sesión en hosts remotos siempre que la clave privada permanezca confidencial y secreta.