¿Cómo generar y usar una llave pública SSH?
Tabla de contenido:
- Crear claves SSH en CentOS
- Copie la clave pública al servidor CentOS
- Inicie sesión en su servidor utilizando claves SSH
- Deshabilitar la autenticación de contraseña SSH
- Conclusión
Secure Shell (SSH) es un protocolo de red criptográfico diseñado para una conexión segura entre un cliente y un servidor.
Los dos mecanismos de autenticación SSH más populares son la autenticación basada en contraseña y la autenticación basada en clave pública. El uso de claves SSH es generalmente más seguro y conveniente que la autenticación de contraseña tradicional.
Este tutorial explica cómo generar claves SSH en sistemas CentOS 7. También le mostraremos cómo configurar una autenticación basada en clave SSH y conectarse a sus servidores Linux remotos sin ingresar una contraseña.
Crear claves SSH en CentOS
Antes de generar un nuevo par de claves SSH, es una buena idea verificar las claves SSH existentes en su máquina cliente CentOS.
Para hacerlo, ejecute el siguiente comando ls que enumera todas las claves públicas si hay alguna:
ls -l ~/.ssh/id_*.pub
Si la salida del comando devuelve algo como
No such file or directory
se
no matches found
No such file or directory
o
no matches found
, significa que no tiene claves SSH en su máquina cliente, y puede continuar con el siguiente paso y generar un par de claves SSH.
Si hay claves existentes, puede usarlas y omitir el siguiente paso o hacer una copia de seguridad de las claves antiguas y generar nuevas.
Comience generando un nuevo par de claves SSH de 4096 bits con su dirección de correo electrónico como comentario:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Se le pedirá que especifique el nombre del archivo:
Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):
Presione
Enter
para aceptar la ubicación y el nombre de archivo predeterminados.
A continuación, se le pedirá que escriba una frase de contraseña segura. Ya sea que quiera usar una frase de contraseña, depende de usted. Si elige usar una frase de contraseña, obtendrá una capa adicional de seguridad.
Enter passphrase (empty for no passphrase):
Toda la interacción se ve así:
Para verificar que se genera su nuevo par de claves SSH, escriba:
ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub
Copie la clave pública al servidor CentOS
Ahora que se genera el par de claves SSH, el siguiente paso es copiar la clave pública en el servidor que desea administrar.
La forma más fácil y recomendada de copiar la clave pública en el servidor remoto es mediante el uso de una utilidad llamada
ssh-copy-id
. En su terminal de máquina local, escriba:
ssh-copy-id remote_username@server_ip_address
Se le pedirá que ingrese la contraseña del
remote_username
usuario
remote_username
:
remote_username@server_ip_address's password:
Escriba la contraseña y, una vez que el usuario esté autenticado, la clave pública
~/.ssh/id_rsa.pub
se agregará al archivo de usuario remoto
~/.ssh/authorized_keys
. La conexión será cerrada.
Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'username@server_ip_address'" and check to make sure that only the key(s) you wanted were added.
Si la utilidad
ssh-copy-id
no está disponible en su computadora local, use el siguiente comando para copiar la clave pública:
cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Inicie sesión en su servidor utilizando claves SSH
Después de completar los pasos anteriores, debería poder iniciar sesión en el servidor remoto sin que se le solicite una contraseña.
Para verificarlo, intente iniciar sesión en su servidor a través de SSH:
ssh remote_username@server_ip_address
Deshabilitar la autenticación de contraseña SSH
Para agregar una capa adicional de seguridad a su servidor remoto, puede deshabilitar la autenticación de contraseña SSH.
Antes de continuar, asegúrese de poder iniciar sesión en su servidor sin contraseña como usuario con privilegios de sudo.
Siga los pasos a continuación para deshabilitar la autenticación de contraseña SSH:
-
Inicie sesión en su servidor remoto:
ssh sudo_user@server_ip_address
Abra el archivo de configuración SSH
/etc/ssh/sshd_config
con su editor de texto:sudo nano /etc/ssh/sshd_config
Busque las siguientes directivas y modifíquelas de la siguiente manera:
/ etc / ssh / sshd_configPasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
Una vez que haya terminado, guarde el archivo y reinicie el servicio SSH escribiendo:
sudo systemctl restart ssh
En este punto, la autenticación basada en contraseña está deshabilitada.
Conclusión
En este tutorial, ha aprendido cómo generar un nuevo par de claves SSH y configurar una autenticación basada en claves SSH. Puede agregar la misma clave a varios servidores remotos.
También le hemos mostrado cómo deshabilitar la autenticación de contraseña SSH y agregar una capa adicional de seguridad a su servidor.
De forma predeterminada, SSH escucha en el puerto 22. Cambiar el puerto SSH predeterminado reduce el riesgo de ataques automáticos.
centos ssh securityGenerar claves ssh en windows con puttygen
Este tutorial explica cómo generar claves SSH en Windows con PuTTYgen. También le mostraremos cómo configurar una autenticación basada en clave SSH y conectarse a sus servidores Linux remotos sin ingresar una contraseña.
Cómo configurar claves ssh en debian 9
En este tutorial, describiremos cómo generar claves SSH en sistemas Debian 9. También le mostraremos cómo configurar una autenticación basada en clave SSH y conectarse a sus servidores remotos de Linux sin ingresar una contraseña.
Cómo configurar claves ssh en ubuntu 18.04
En este tutorial, veremos cómo generar claves SSH en máquinas Ubuntu 18.04. También le mostraremos cómo configurar una autenticación basada en clave SSH y conectarse a sus servidores Linux remotos sin ingresar una contraseña.