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 už mal mať nainštalované kľúče PGP a miestna kľúčenka GnuPG by mala poznať kľúče.

Príprava na klienta

  • Uistite sa, že ~/.gnupg/gpg.conf obsahuje ‚use-agent‘

  • Pridanie podpory ssh do gnupg-agenta pridaním ‚enable-ssh-support‘ do ~/.gnupg/gpg-agent.conf

  • Ak súbor ešte neexistuje, môžete ho jednoducho vytvoriť.

  • Nasledujúci kód pridajte niekam do svojho ~/.bashrc (pre fish shell hľadajte tu)

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Jednoducho reštartujte systém alebo skúste pkill gpg-agent a otvorte nový príkazový riadok, aby ste sa uistili, že je všetko nastavené

  • V prípade problémov skúste gpg2 --card-status pri prvom použití, aby ste sa uistili, že sa gpg-agent spustí

Príprava servera

Súbor authorized_keys môžete vygenerovať spustením

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

kde

keyID

je identifikátor podkľúča, ktorý sa používa na overovanie na vašom kľúči Nitrokey. Kľúč Nitrokey už musí byť známy miestnemu zväzku kľúčov GnuPG. Teraz môžete tento súbor pripojiť k authorized_keys vzdialeného servera’a pri ssh na server budete požiadaní o PIN namiesto heslovej frázy.

Riešenie problémov

Ak ste stále požiadaní o zadanie hesla, uistite sa, že

echo $SSH_AUTH_SOCK

vráti niečo ako ‚/run/user/1000/gnupg/S.gpg-agent.ssh‘ alebo ‚/home/username/.gnupg/.S.gpg-agent.ssh‘. Bohužiaľ, v minulosti došlo v GnuPG k určitým zmenám, takže skutočný obsah sa môže líšiť v závislosti od systému a verzie GnuPG. V niektorých systémoch môže byť v tejto premennej uložených dokonca viacero priečinkov. Musíte upraviť vyššie uvedený kód v .bashrc tak, aby premenná SSH_AUTH_SOCK bola správna. V prípade pochybností vyhľadajte ‚SSH_AUTH_SOCK‘ v

man gpg-agent

nájsť skutočný kód pre vašu verziu/systém.

Prostredníctvom správcu balíkov môžete skontrolovať, či máte nainštalovaný program ‚pinentry‘. Možno budete musieť nastaviť aj v súbore gpg-agent.conf. Možno bude potrebné nastaviť gpg-agent na správny TTY.