Qué es
Con una clave normal, la clave privada es un fichero (o un secreto en el almacén del sistema) que la app lee para firmar. Con una clave en hardware, la privada la genera el chip de seguridad del dispositivo, se queda dentro y no se puede exportar: la app solo le pide que firme. El servidor solo ve su clave pública, como con cualquier otra clave.
Para empezar
- En el editor del host, en Autenticación, elige «Clave (hardware)».
- Ponle un alias (un nombre para la clave, p. ej.
casa). Varios hosts pueden usar el mismo alias, y entonces comparten la clave. - Marca «Instalar la clave en el host por mí» y escribe la contraseña del servidor una vez: la app genera la clave, copia su línea pública en
authorized_keysy comprueba que entra. También puedes pulsar «Generar / mostrar clave» y copiar la línea tú.
Sistemas
| Dispositivo | Dónde vive la clave | Tipo |
|---|---|---|
| Android 8 o posterior | Android Keystore, en StrongBox si el móvil lo tiene | ecdsa-sha2-nistp256 |
| Windows 10 y 11 | El TPM 2.0 del equipo, a través del proveedor de claves de Windows (Microsoft Platform Crypto Provider) | ecdsa-sha2-nistp256 |
| Linux | El TPM 2.0 del equipo, directamente por /dev/tpmrm0. No hace falta instalar nada | ecdsa-sha2-nistp256 |
| Llaves de seguridad (YubiKey, FIDO2) y agente SSH del sistema | Todavía no. Están previstas para más adelante. | |
- Todos los equipos con Windows 11 tienen TPM 2.0. En Windows 10 y en Linux depende del equipo; casi todos los PC de los últimos años lo traen, a veces desactivado en la UEFI/BIOS.
- El tipo es siempre ECDSA P-256 porque es el que admiten todos los TPM y todos los Android. Cualquier OpenSSH actual lo acepta.
Requisitos
Windows
- Un TPM 2.0 activo. Para comprobarlo, abre
tpm.msc: debe decir «El TPM está listo para usarse». - No hace falta ser administrador. Windows guarda la clave para tu usuario.
Linux: el grupo tss
El TPM aparece como /dev/tpmrm0. En casi todas las distribuciones ese fichero pertenece al grupo tss, así que tu usuario tiene que estar en ese grupo para que la app lo use. Si no lo está, el editor del host lo dice. Se hace una sola vez:
- Comprueba el TPM y su grupo:
ls -l /dev/tpmrm0(debe salir algo comocrw-rw---- … root tss …). - Añade tu usuario al grupo:
sudo usermod -aG tss $USER. - Cierra la sesión y vuelve a entrar (o reinicia) para que el cambio de grupo se aplique.
iddebe mostrartss.
- Si
/dev/tpmrm0no existe, el equipo no tiene TPM 2.0 o está desactivado en la UEFI/BIOS (a veces se llama «PTT» en Intel o «fTPM» en AMD). - Si en tu distribución el fichero tiene otro grupo, usa ese en lugar de
tss. - Estar en el grupo
tssdeja usar el TPM a cualquier programa de tu usuario, pero tu clave no: el TPM solo la usa con el fichero cifrado que la app guarda en su carpeta de configuración, y esa carpeta solo la puede leer tu usuario.
Límites
- La clave es de ese dispositivo. No se puede copiar a otro equipo ni hacer copia de seguridad. Si borras el TPM (desde
tpm.msco la UEFI), reinstalas el sistema o cambias de equipo, la clave se pierde: crea otra con el mismo alias e instálala de nuevo en tus hosts. Conviene tener otra forma de entrar en cada servidor. - La estable y la canary tienen claves distintas, aunque uses el mismo alias. Un host copiado a la canary necesita instalar también la clave de la canary.
- Sin PIN ni huella por ahora: la clave firma mientras tu sesión del sistema esté abierta.
- Linux en Flatpak: todavía no hay paquete Flatpak. Cuando lo haya, necesitará permiso para acceder a
/dev/tpmrm0.
Errores
- Tu usuario no tiene acceso al TPM
- Linux: tu usuario no está en el grupo
tss, o todavía no has vuelto a iniciar sesión después de añadirlo. Mira Requisitos. - Este equipo no tiene un TPM 2.0 activo
- Linux: no existe
/dev/tpmrm0. Activa el TPM en la UEFI/BIOS o usa una clave software. - Windows no encuentra un TPM 2.0 que pueda usar
- Windows no puede abrir su proveedor de claves de TPM. Revisa
tpm.msc; si el TPM está desactivado o no está listo, actívalo o prepáralo desde ahí o desde la UEFI. - Falla la conexión con «No hardware key for alias…»
- En este dispositivo no hay ninguna clave con ese alias, por ejemplo en un host copiado de otro equipo o de la estable a la canary. Genera la clave aquí e instálala en el host.