Cómo configurar la autenticación SSH basada en claves con Redtrust
Descripción general
Esta guía explica cómo autenticarse en un servidor SSH usando una clave almacenada en Redtrust en lugar de una clave local.
Contexto
En una configuración SSH estándar, el cliente utiliza un archivo de clave privada local (por ejemplo, id_rsa o id_ed25519) para autenticarse en un servidor. El servidor verifica la clave pública correspondiente almacenada en el archivo authorized_keys.
Cuando usas Redtrust, la clave privada no se almacena localmente. En su lugar, OpenSSH carga el proveedor PKCS#11 de Redtrust (RTPKCS11.dll) para acceder de forma segura a la clave privada desde Redtrust. Desde la perspectiva del servidor, la autenticación funciona como una autenticación estándar mediante clave pública. La única diferencia es cómo el cliente accede a la clave privada.
Antes de empezar
Para seguir esta guía necesitas lo siguiente:
- Un certificado subido a Redtrust.
- Una política que permita el uso del cliente SSH (
ssh.exe). - Un servidor SSH que permita la autenticación mediante clave pública.
- Para Windows Server, debes tener instalado OpenSSH y el servicio iniciado.
Si la instalación de OpenSSH falla, asegúrate de que la máquina tenga el último parche del sistema operativo. Para hacerlo ejecuta sconfig, selecciona Download and install updates e instala cualquier actualización pendiente.
Obtener la clave pública SSH
- Accede a la consola de administración.
- Ve a Certificates y localiza el que quieras usar.
- Ve al menú Actions > Download certificate > Download .pub (SSH).
El contenido del archivo .pub es la clave pública SSH utilizada en los pasos a continuación.
Configurar el servidor SSH
- Windows server
- Linux server
De forma predeterminada, la instalación de OpenSSH Server ya permite el inicio de sesión mediante autenticación con clave pública. Debes añadir la clave pública y asociarla a la cuenta de usuario.
En Windows, OpenSSH trata las cuentas de administrador de forma diferente y almacena las claves autorizadas en un archivo de todo el sistema dentro de ProgramData.
Para usuarios administradores
-
Crea el archivo
administrators_authorized_keys.New-Item -Force -ItemType File -Path C:\ProgramData\ssh\administrators_authorized_keys -
Añade la clave pública que descargaste de Redtrust a la lista de claves aceptadas.
Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value "TU_CLAVE_SSH" -
Configura los permisos del archivo.
Get-Acl C:\ProgramData\ssh\ssh_host_rsa_key | Set-Acl C:\ProgramData\ssh\administrators_authorized_keys -
Reinicia el servicio.
Restart-Service sshd
Para usuarios no administradores
-
Crea el archivo
authorized_keys.New-Item -Force -ItemType File -Path C:\Users\TU_USUARIO\.ssh\authorized_keys -
Añade la clave pública a la lista de claves aceptadas.
Add-Content -Force -Path C:\Users\TU_USUARIO\.ssh\authorized_keys -Value "TU_CLAVE_SSH" -
Configura los permisos del archivo.
Get-Acl C:\Users\TU_USUARIO | Set-Acl C:\Users\TU_USUARIO\.ssh
Get-Acl C:\Users\TU_USUARIO | Set-Acl C:\Users\TU_USUARIO\.ssh\authorized_keys -
Reinicia el servicio.
Restart-Service sshd
Añadir la clave pública
-
Accede al servidor con un usuario con privilegios sudo.
-
Si el directorio
.sshno existe, créalo manualmente.mkdir -p ~/.ssh -
En el directorio
.ssh, crea el archivoauthorized_keysy ábrelo:touch ~/.ssh/authorized_keys
vim ~/.ssh/authorized_keys -
Pega la clave pública de Redtrust que descargaste en el archivo (tendrá un aspecto similar a
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...). -
Establece los permisos correctos:
chmod 600 ~/.ssh/authorized_keysavisoSSH rechazará la autenticación si los permisos del directorio y de los archivos son demasiado permisivos.