Hay 2 métodos para acceder al SSH, uno está basado en contraseña y otro está basado en clave. La autenticación basada en clave SSH está destinada a proporcionar una forma segura de acceder a un servidor con clave privada y pública.
En esta guía, aprenderá las siguientes formas de proteger su máquina Debian.
- Crear nuevo usuario con privilegios sudo
- Deshabilitar autenticación basada en contraseña
- Generar claves SSH
- Configurar clave SSH para el usuario
- Deshabilitar solicitud de contraseña al usar sudo
Paso 1:Crear nuevo usuario
Puede omitir esto si ya ha creado el usuario.
Cree un nuevo usuario con contraseña deshabilitada usando el siguiente comando.
sudo adduser username --disabled-password
Siga las indicaciones y confirme con Y
, que crea el usuario con el directorio de inicio del usuario en /home/username
.
Otorgar acceso sudo al nuevo usuario
Agregue el nuevo usuario al grupo sudo para que el usuario tenga privilegios de administrador para ejecutar comandos.
sudo usermod -aG sudo username
Ahora tiene un nuevo usuario con derechos sudo y contraseña deshabilitados.
Paso 2:deshabilite la autenticación de contraseña para el usuario
Edite el /etc/ssh/sshd_config
archivo para configurar la autenticación.
sudo nano /etc/ssh/sshd_config
Añade lo siguiente a lo último.
Match User username PasswordAuthentication no
Guarde el archivo y reinicie SSH.
sudo systemctl restart ssh
Ahora el usuario no puede iniciar sesión con contraseña.
Paso 3:generar clave SSH
Inicie sesión como el usuario que ha creado anteriormente.
sudo su username
Crear nuevo .ssh
directorio para guardar las teclas ssh y navegar hasta él.
No uses sudo aquí.
mkdir .ssh cd .ssh
Crear claves SSH.
ssh-keygen -m PEM -t rsa -b 4096 -C "your_email"
Aquí he usado para PEM
formato para generar una clave basada en RSA. Si el -m PEM
se elimina, podría generar la clave OpenSSH.
Cuando se le solicite, proporcione el nombre de la clave.
Omita la frase de contraseña y complete la configuración.
Ahora debería tener 2 archivos dentro de su directorio .ssh.
filename.pub filename
El nombre de archivo.pub es su clave pública y el nombre de archivo es su clave privada.
Paso 4:Configure la clave SSH para el acceso SSH.
Para permitir la conexión SSH, debe agregar la clave pública al authorized_keys
archivo.
cat filename.pub >> authorized_keys
Este comando creará un archivo llamado authorized_keys
y agregue el contenido de la clave pública.
Copie el contenido de la clave privada, puede realizar la autenticación en el servidor usando esto.
cat filename
Este comando genera el contenido de su clave privada. Guárdelo para autenticación.
Paso 5:deshabilite la solicitud de contraseña mientras usa sudo
De manera predeterminada, cuando ejecuta comandos basados en sudo con otro usuario, el sistema le solicita que ingrese la contraseña del usuario.
Como no usamos contraseña, debemos deshabilitarla.
Salga del shell de usuario y vuelva a su shell raíz.
Ejecute el comando para ingresar visudo
.
sudo visudo
Añade lo siguiente a lo último.
username ALL=(ALL) NOPASSWD: ALL
Guarde el archivo y salga.
Eso es todo. Ahora tiene un usuario que puede iniciar sesión solo con claves SSH.