SSH

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

active

inactive

active

active

inactive

This guide explains how to prepare your SSH server and client for use with the Nitrokey. For configuring PuTTY, see this guide:

Nitrokey by již měl mít nainstalované klíče PGP a místní klíčenka GnuPG by měla klíče znát.

Příprava na klienta

  • Ujistěte se, že ~/.gnupg/gpg.conf obsahuje ‚use-agent‘

  • Přidání podpory ssh do gnupg-agenta přidáním ‚enable-ssh-support‘ do ~/.gnupg/gpg-agent.conf

  • Pokud soubor ještě neexistuje, můžete jej vytvořit.

  • Někam do souboru ~/.bashrc přidejte následující kód (pro rybí skořápku hledejte zde)

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Jednoduše restartujte systém nebo zkuste pkill gpg-agent a otevřete nový příkazový řádek, abyste se ujistili, že je vše nastaveno.

  • V případě problémů zkuste gpg2 --card-status při prvním použití, abyste se ujistili, že se gpg-agent spustí.

Příprava serveru

Soubor authorized_keys můžete vygenerovat spuštěním příkazu

gpg2 --export-ssh-key keyID >> ~/authorized_keys

kde

keyID

je id dílčího klíče, který se používá pro ověřování na vašem klíči Nitrokey. Klíč Nitrokey musí být již znám v místní sbírce klíčů GnuPG. Nyní můžete tento soubor připojit ke vzdálenému serveru’s authorized_keys a při ssh na serveru budete’požádáni o PIN místo přístupové fráze.

Řešení problémů

Pokud jste stále žádáni o zadání hesla, ujistěte se, že.

echo $SSH_AUTH_SOCK

vrátí něco rozumného jako ‚/run/user/1000/gnupg/S.gpg-agent.ssh‘ nebo ‚/home/username/.gnupg/.S.gpg-agent.ssh‘. Bohužel v minulosti došlo v GnuPG k některým změnám, takže skutečný obsah se může lišit podle verze systému a GnuPG. V některých systémech může být v této proměnné uloženo i více složek. Výše uvedený kód v .bashrc musíte upravit tak, aby proměnná SSH_AUTH_SOCK byla správně. V případě pochybností vyhledejte ‚SSH_AUTH_SOCK‘ v položce

man gpg-agent

najít skutečný kód pro vaši verzi/systém.

Prostřednictvím správce balíčků můžete zkontrolovat, zda máte nainstalovaný program ‚pinentry‘. Možná budete muset nastavit také v souboru gpg-agent.conf. Možná bude nutné nastavit gpg-agent na správné TTY.