SSH

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

Nitrokey ar trebui să aibă deja instalate chei PGP, iar brelocul local GnuPG ar trebui să cunoască cheile.

Pregătirea pe client

  • Asigurați-vă că ~/.gnupg/gpg.conf conține «use-agent»

  • Adăugați suportul ssh la gnupg-agent adăugând «enable-ssh-support» la ~/.gnupg/gpg-agent.conf

  • În cazul în care fișierul nu există încă, îl puteți crea pur și simplu.

  • Adăugați următorul cod undeva în ~/.bashrc (pentru fish shell, căutați ` aici <https://support.nitrokey.com/t/ssh-auth-with-fish-instead-of-bash/2206>`__)

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Pur și simplu reporniți sistemul sau încercați pkill gpg-agent și deschideți o nouă linie de comandă pentru a vă asigura că totul este setat

  • În caz de probleme, vă rugăm să încercați gpg2 --card-status la prima utilizare pentru a vă asigura că gpg-agent este pornit

Pregătirea pentru server

Puteți genera un fișier authorized_keys rulând fie

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

unde

keyID

este ID-ul de subcheie utilizat pentru autentificare pe Nitrokey. Nitrokey trebuie să fie deja cunoscută de brelocul de chei GnuPG local. Acum puteți adăuga acest fișier la authorized_keys al unui server de la distanță, iar atunci când vă conectați prin ssh la server vi se va cere un pin în loc de o frază de acces.

Depanare

Dacă vi se cere în continuare o parolă, asigurați-vă că

echo $SSH_AUTH_SOCK

returnează ceva de genul «/run/user/1000/gnupg/S.gpg-agent.ssh» sau «/home/nume utilizator/.gnupg/.S.gpg-agent.ssh». Din păcate, au existat unele modificări în GnuPG în trecut, astfel încât conținutul real poate diferi în funcție de sistem și de versiunea GnuPG. Pe unele sisteme pot exista chiar mai multe dosare în această variabilă salvată. Trebuie să adaptați codul dat mai sus în .bashrc astfel încât variabila SSH_AUTH_SOCK să fie corectă. În caz de îndoială, căutați «SSH_AUTH_SOCK» în

man gpg-agent

pentru a găsi codul real pentru versiunea/sistemul dumneavoastră.

Puteți verifica dacă aveți un program «pinentry» instalat prin intermediul managerului de pachete. Este posibil să fie nevoie să setați-l și în gpg-agent.conf. Este posibil să fie nevoie să punctați gpg-agent la TTY-ul corect.