Saltar al contenido principal
Versión: 4.42

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

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

  1. Accede a la consola de administración.
  2. Ve a Certificates y localiza el que quieras usar.
  3. 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

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

  1. Crea el archivo administrators_authorized_keys.

    New-Item -Force -ItemType File -Path C:\ProgramData\ssh\administrators_authorized_keys
  2. 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"
  3. Configura los permisos del archivo.

    Get-Acl C:\ProgramData\ssh\ssh_host_rsa_key | Set-Acl C:\ProgramData\ssh\administrators_authorized_keys
  4. Reinicia el servicio.

    Restart-Service sshd

Para usuarios no administradores

  1. Crea el archivo authorized_keys.

    New-Item -Force -ItemType File -Path C:\Users\TU_USUARIO\.ssh\authorized_keys
  2. 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"
  3. 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
  4. Reinicia el servicio.

    Restart-Service sshd

Una vez que el servidor SSH confía en la clave pública, configura el cliente SSH para usar la clave privada almacenada en Redtrust.

Configurar el cliente SSH

Una vez que el servidor SSH acepta la autenticación mediante clave pública, configura el cliente SSH de Windows para usar la clave almacenada en Redtrust.

  1. Conecta el agente de Redtrust.

  2. Crea un archivo de configuración SSH llamado config.

    C:\Users\TU_USUARIO\.ssh\config

    Si el directorio .ssh no existe, créalo manualmente.

  3. Añade la siguiente línea:

    PKCS11Provider "C:\Windows\System32\RTPKCS11.dll"

    Esto indica a OpenSSH que use el proveedor PKCS#11 de Redtrust para acceder a las claves privadas almacenadas de forma segura en Redtrust.

  4. Conéctate al servidor:

    ssh TU_USUARIO@IP_DEL_SERVIDOR

Si el servidor confía en la clave pública correspondiente, la autenticación se realiza correctamente sin usar un archivo de clave privada local ni la contraseña del servidor.

aviso

Si el cliente solicita un PIN PKCS#11 de Redtrust, asegúrate de que el agente esté en ejecución.

tip

En Windows, Git puede usar su propia implementación de SSH en lugar del cliente OpenSSH incluido con el sistema operativo. Configura Git para usar el cliente OpenSSH de Windows:

git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

Después de esta configuración, Git utiliza el mismo cliente SSH que carga el proveedor PKCS#11 de Redtrust.

En Linux, Git usa el cliente SSH del sistema por defecto, por lo que no se requiere configuración adicional.