Michael Vorburger.ch Blog

SSH with private keys sealed in TPM on Fedora Linux

June 19, 2025
SSH with private keys sealed in TPM on Fedora Linux image

SSH with private keys sealed in TPM on Fedora Linux

Instead of safely storing SSH private keys on a Yubikey (if you don’t have one) you might want to keep private keys sealed in TPM.

Here is how to do this on Fedora Linux using https://github.com/Foxboron/ssh-tpm-agent:

$ sudo dnf install openssl-devel
$ go install github.com/foxboron/ssh-tpm-agent/cmd/...@latest

$ ~/go/bin/ssh-tpm-keygen --supported
ecdsa bit lengths: 256 384
rsa bit lengths: 2048

As this TPM supports ECDSA keys with 384 (but not 521) bits, so:

$ ~/go/bin/ssh-tpm-keygen -b 384

You may want use an empty passphrase (here, only). Now let’s activate this TPM SSH agent:

$ ssh-tpm-agent --install-user-units
$ systemctl --user enable --now ssh-tpm-agent.socket

Activate SSH_AUTH_SOCK, e.g. like this.

Transfer ~/.ssh/id_ecdsa.pub to https://github.com/settings/keys, and test it:

$ ssh git@github.com

VoilĂ !