Configurar los inicios de sesión del servidor mediante certificados SSH es una excelente manera de aumentar la seguridad del servidor (las contraseñas SSH de fuerza bruta se volverán inútiles). Y el uso de una contraseña para el certificado privado reducirá el riesgo de que se rompa la clave (al copiar el certificado de inicio de sesión).
Las instrucciones cubren los problemas de creación y configuración de certificados SSH en el servidor Ubuntu 18 LTS y la aplicación cliente PuTTY.
Contenido
- Preparando carpetas
- Preconfiguración del servidor
- Configurar certificados SSH en el servidor
- Configuración de la conexión PuTTY
- Configuración final del servidor
Artículo en otros idiomas:
?? – How to Сonfigure SSH Certificates for Login to Ubuntu
?? – Как настроить SSH сертификаты для входа на Ubuntu сервер
Preparando carpetas
Preparamos la carpeta y el archivo de claves en el servidor.
Un punto importante al configurar la autorización SSH por claves es especificar los Permisos correctos para la carpeta y el archivo de claves.
Correr:
mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys
Preconfiguración del servidor
Allow login using the public SHH certificate to the server and specify the path to the certificate in the SSH settings, the sshd_config.
Permita el inicio de sesión con el certificado público SHH en el servidor y especifique la ruta al certificado en la configuración SSH, sshd_config.
nano /etc/ssh/sshd_config
Descomentar o agregar valores:
PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys
Configurar certificados SSH en el servidor
Generando claves SSH.
ssh-keygen -a 1000 -b 4096 -o -t rsa
Especifique la ruta de almacenamiento de claves y su nombre.
/root/.ssh/id_rsa
? En mi caso, al crear un certificado para root, resultó importante especificar la ruta dura /root/.ssh/, en lugar de la relativa ~/.ssh/, para evitar que el servidor SSH Server refused our key error .
El sistema también creará una clave pública a lo largo de esta ruta.
Establecemos una frase de contraseña para acceder a la clave privada.
Agregue el contenido del archivo de clave pública al archivo de certificado de autorización SSH.
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Reinicie el servicio SSH.
sudo service ssh restart
Configuración de la conexión PuTTY
Convirtamos la clave privada al formato de clave PuTTY
? Al intentar usar la clave copiada, PuTTY mostrará un error: «Unable to use key file (OpenSSH SSH-2 private key (new format))«.
- Copie la clave privada id_rsa (o el contenido de la clave en un archivo) en la computadora local;
- Ejecute el programa puttygen (desde la carpeta PuTTY);
- Haga clic en el botón Load y seleccione el archivo de clave privada;
- Ingrese la contraseña para el certificado privado;
- Haga clic en Save private key para guardar la clave privada en el formato deseado (puede cambiar Key comment, esto no afectará el funcionamiento de la clave).
Configuración de la conexión PuTTY mediante certificado SSH
Agregue el certificado privado a la conexión:
Connection > SSH > Auth > Private key file for authentication
Si la conexión es exitosa, después de ingresar el nombre de usuario, se le pedirá la frase de contraseña del certificado, luego de lo cual el inicio de sesión en el servidor debería ser exitoso.
? Si recibe el mensaje SSH Server refused our key al iniciar sesión en el servidor, verifique que los derechos de la carpeta .ssh y el archivo authorized_keys sean correctos, y también especifique la ruta directa a la carpeta con las claves en.
Configuración final del servidor
El último paso para configurar SSH es deshabilitar la capacidad de iniciar sesión en el servidor usando una contraseña en el archivo de configuración.
nano /etc/ssh/sshd_config
Descomentar o agregar valor:
PasswordAuthentication no
Luego reinicie el servicio SSH.
sudo service ssh restart
Configuración de autorización por certificado SSH – ¡completado!
Cómo configurar certificados SSH para iniciar sesión en Ubuntu y la opción para arreglar el servidor SSH Server refused our key error error se discutió en este artículo. Espero que ahora pueda configurar el servidor SSH y los inicios de sesión del cliente mediante certificados. Sin embargo, si tiene algún problema al configurar su servidor y cliente SSH, no dude en escribir en los comentarios. Trataré de ayudar.