Cómo configurar certificados SSH para iniciar sesión en Ubuntu

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

  1. Preparando carpetas
  2. Preconfiguración del servidor
  3. Configurar certificados SSH en el servidor
  4. Configuración de la conexión PuTTY
  5. 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))«.

  1. Copie la clave privada id_rsa (o el contenido de la clave en un archivo) en la computadora local;
  2. Ejecute el programa puttygen (desde la carpeta PuTTY);
  3. Haga clic en el botón Load y seleccione el archivo de clave privada;
  4. Ingrese la contraseña para el certificado privado;
  5. 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).
Cómo configurar certificados SSH para el inicio de sesión de putty
Clave RSA cargada en PuTTY Key Generator

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.

Cómo configurar certificados SSH para iniciar sesión en Ubuntu
Inicio de sesión exitoso en el servidor con certificados SSH

? 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.

Deja un comentario