Cómo arreglar Ubuntu open /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1: No such file or directory

Problema

En Ubuntu 26.04 o posterior, cuando quieres conectarte a un host SSH usando una clave SSH basada en TPM, ves el siguiente error:

tpm2_pkcs11_error.txt
lib_contains_symbol: open /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1: No such file or directory
provider /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1 is not a PKCS11 library
Received disconnect from 100.64.0.132 port 22:2: Too many authentication failures
Disconnected from 10.1.2.3 port 22

Solución

Entre Ubuntu 24.04 y 26.04, el paquete libtpm2-pkcs11-1 fue actualizado y, por tanto, el archivo de librería fue movido de

old_pkcs11_path.txt
/usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1

a

new_pkcs11_path.txt
/usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so

Por tanto, necesitas editar tu configuración SSH (normalmente en ~/.ssh/config o en /etc/ssh/ssh_config) y cambiar la ruta de la librería del proveedor PKCS11 a la nueva ruta.

Por ejemplo, cambia esto:

ssh_config_example_old
Host myserver
    HostName myserver.mydomain.com
    PasswordAuthentication no
    PKCS11Provider /usr/lib/x86_64-linux-gnu/libtpm2_pkcs11.so.1

a

ssh_config_example
Host myserver
    HostName myserver.mydomain.com
    PasswordAuthentication no
    PKCS11Provider /usr/lib/x86_64-linux-gnu/pkcs11/libtpm2_pkcs11.so

Echa un vistazo a artículos similares por categoría: Linux