SSH za upravljanje strežnika#

V tem priročniku je pojasnjeno, kako pripraviti strežnik SSH in odjemalca za uporabo s ključem Nitrokey.

Nitrokey mora imeti že nameščene ključe PGP, lokalni sveženj ključev GnuPG pa mora poznati ključe.

Priprava na stranko#

  • Prepričajte se, da ~/.gnupg/gpg.conf vsebuje ‚use-agent‘

  • Dodajte podporo za ssh v gnupg-agenta z dodajanjem ‚enable-ssh-sshupport‘ v ~/.gnupg/gpg-agent.conf

  • Če datoteka še ne obstaja, jo lahko preprosto ustvarite.

  • Nekam v ~/.bashrc dodajte naslednjo kodo (za ribjo lupino poiščite ` tu <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
  • Preprosto znova zaženite sistem ali poskusite pkill gpg-agent in odprite novo ukazno vrstico, da se prepričate, da je vse nastavljeno

  • V primeru težav poskusite gpg2 --card-status ob prvi uporabi, da se prepričate, da se bo agent gpg zagnal

Priprava strežnika#

Datoteko authorized_keys lahko ustvarite tako, da zaženete

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

kjer je

keyID

je ID podključa, ki se uporablja za preverjanje pristnosti v ključu Nitrokey. Ključ Nitrokey mora biti že znan lokalnemu zbirki ključev GnuPG. To datoteko lahko zdaj dodate v pooblaščene ključe oddaljenega strežnika in ko boste ssh na strežnik, boste namesto gesla zahtevali pin.

Odpravljanje težav#

Če ste še vedno pozvani k vpisu gesla, preverite, ali

echo $SSH_AUTH_SOCK

vrne nekaj takega kot ‚/run/user/1000/gnupg/S.gpg-agent.ssh‘ ali ‚/home/username/.gnupg/.S.gpg-agent.ssh‘. Žal je bilo v preteklosti v GnuPG nekaj sprememb, zato se lahko dejanska vsebina razlikuje od sistema in različice GnuPG. V nekaterih sistemih je lahko v tej spremenljivki shranjenih celo več map. Zgoraj navedeno kodo v .bashrc morate prilagoditi tako, da bo spremenljivka SSH_AUTH_SOCK pravilna. V dvomu poiščite ‚SSH_AUTH_SOCK‘ v

man gpg-agent

za iskanje dejanske kode za vašo različico/sistem.

V upravitelju paketov lahko preverite, ali imate nameščen program ‚pinentry‘. Morda ga boste morali nastaviti tudi v datoteki gpg-agent.conf. Morda boste morali usmeriti gpg-agenta na pravilno TTY.