Gpg Dongle Setup -

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:

gpg --card-edit Within the interactive shell:

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:

Host * IdentityFile ~/.ssh/id_rsa_gpg.pub IdentitiesOnly yes Enable SSH agent forwarding in ~/.gnupg/gpg-agent.conf : gpg dongle setup

sudo apt install gnupg gnupg-agent pcscd scdaemon (Homebrew):

export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) Test SSH:

enable-ssh-support Restart and add to shell profile ( ~/.bashrc or ~/.zshrc ): gpg --edit-key YOUR_KEYID gpg&gt

brew install gnupg ykman pinentry-mac :

sudo systemctl restart pcscd Edit ~/.gnupg/scdaemon.conf :

gpg --card-status Expected output shows: keytocard Select destination slot (1=Sign

gpgconf --kill gpg-agent Set admin PIN, user PIN, and reset code (optional):

sudo pacman -S gnupg pcsc-tools Plug in your dongle and check if the system sees it:

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: