SSH pre správu servera#

Táto príručka vysvetľuje, ako pripraviť server SSH a klienta na použitie s Nitrokey.

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.