# PC/SC driver pcsc-driver /usr/lib/libpcsclite.so # Disable CCID (for YubiKey) disable-ccid # Enable card removal notification card-timeout 5 Edit ~/.gnupg/gpg-agent.conf :
sudo apt install gnupg gnupg-agent pcscd scdaemon (Homebrew):
Reader ...........: Yubico YubiKey OTP+FIDO+CCID 0 Application ID ...: D276000124010200... Version ..........: 3.4 Manufacturer .....: Yubico If not detected, restart pcscd : gpg dongle setup
gpg --card-edit Within the interactive shell:
enable-ssh-support default-cache-ttl 600 max-cache-ttl 7200 pinentry-program /usr/bin/pinentry-curses # or pinentry-mac on macOS Restart the agent: # PC/SC driver pcsc-driver /usr/lib/libpcsclite
ssh -T git@github.com # Should prompt for PIN then authenticate Sign a file gpg --sign document.txt # Prompts for PIN on the dongle Decrypt a file gpg --decrypt secret.gpg List keys on card gpg --card-status Change PIN gpg --card-edit gpg/card> admin gpg/card> passwd Step 7: Backup & Recovery Critical : Backup your revocation certificate immediately:
gpgconf --kill gpg-agent Set admin PIN, user PIN, and reset code (optional): Extract the authentication key for SSH:
sudo systemctl restart pcscd Edit ~/.gnupg/scdaemon.conf :
gpg --export-ssh-key YOUR_KEYID > ~/.ssh/id_rsa_gpg.pub Add to ~/.ssh/config :
gpg --edit-key YOUR_KEYID gpg> keytocard Select destination slot (1=Sign, 2=Encrypt, 3=Authenticate). Repeat for each subkey. Extract the authentication key for SSH: