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 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.