SSH Las claves son claves criptográficas que se utilizan para autenticar y proteger el tráfico o las comunicaciones entre dos servidores o sistemas. Proporcionan un método de autenticación más seguro en comparación con la autenticación de contraseña tradicional, que es vulnerable a los ataques de fuerza bruta.
En este tutorial, lo guiaremos a través de la configuración de claves SSH Linux oscilante.
Tabla de Contenidos
Cree un 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
Por defecto, esto crea un RSA de 2048 bits Par de claves considerado lo suficientemente fuerte como para cifrar el tráfico entre el cliente y el host remoto.
Opcionalmente, puede crear uno 4096 bits Par de claves que es más grande y más seguro usando el -b
Posibilidad de la siguiente manera:
$ ssh-keygen -b 4096
Después de ejecutar el ssh-keygen comando, seguido de una serie de indicaciones. Primero debe especificar el archivo donde se almacenarán las claves. De forma predeterminada, las claves se almacenan en ~/.ssh
directorio en su directorio de inicio. Puede definir su archivo personalizado, pero en esta ilustración usaremos la configuración predeterminada
Así que presiona APORTE para guardar las llaves 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. Se recomienda precaución aquí. Sobrescribir las claves significa que la autenticación con las claves anteriores no es posible. Escoger ‘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 evitar que los usuarios no autorizados utilicen las claves para la autenticación. Sin embargo, puede dejar este campo en blanco si desea configurar la autenticación SSH sin contraseña entre su sistema local y otros hosts remotos.
Dejaremos esto en blanco por ahora y presionaremos APORTE.
Finalmente, el par de claves SSH (en público y Privado key) se almacenan 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, el SSH Las claves se almacenan en ~/.ssh
directorio en su directorio de inicio. Para confirmar esto, ejecute el comando:
$ ls -la ~/.ssh
- Ese id_rsa es la clave privada y debe mantenerse en secreto y confidencial. Compartir puede causar una violación grave de su servidor remoto.
- Ese id_rsa.pub es la clave pública y se almacena en el host remoto al que intenta conectarse.
Con el SSH Clave creada con éxito, el siguiente paso es guardar la Público Clave del sistema remoto lista para la autenticación.
Copie la clave pública SSH en el servidor Linux remoto
Ese ssh-copia-id El comando proporciona una manera fácil y conveniente de copiar la clave pública SSH 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 Beto ya configurado. Ejecute el siguiente comando para copiar la clave pública SSH:
$ ssh-copy-id [email protected]
Cuando se conecte al host por primera vez, verá el siguiente resultado. Entrar para continuar ‘yes’
y presione ENTER para continuar.
El comando busca en su sistema local la clave pública id_rsa.pub y una vez que establece su presencia, le solicita la contraseña del usuario remoto.
Introduce la contraseña y pulsa APORTE. La clave pública se copia en el host remoto ~/.ssh/authorized_keys
Archivo. Llegaremos a eso más tarde.
En su sistema local está el ~/.ssh/known_hosts
se crea el archivo. Este es un archivo que contiene las huellas dactilares SSH de los 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 probarlo, inicie sesión normalmente.
$ ssh [email protected]
Esta vez será llevado inmediatamente al shell del host remoto.
Como ya se mencionó, la clave pública se almacena en el llaves_tituladas 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 la autenticación de contraseña SSH
Ese SSH La autenticación de clave pública se ha configurado correctamente. Sin embargo, la autenticación de contraseña aún está activa, lo que hace que su host remoto sea vulnerable a los ataques de fuerza bruta.
Por lo tanto, se recomienda enfáticamente deshabilitar la autenticación de contraseña. Ahora vuelva a iniciar sesión en el host remoto con el usuario root o sudo. Luego abre el sshd_config archivo de configuración.
$ sudo vim /etc/ssh/sshd_config
Desplácese hacia abajo y encuentre el autenticación de contraseña política. Si está comentado, coméntalo y ponlo 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 deshabilitado en el servidor remoto y solo se puede acceder al servidor remoto mediante 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.