SSH#

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.