SSH

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

„Nitrokey“ jau turėtų būti įdiegti PGP raktai, o vietinis GnuPG raktų rinkinys turėtų žinoti raktus.

Pasirengimas klientui

  • Įsitikinkite, kad ~/.gnupg/gpg.conf yra ‚use-agent‘

  • Pridėkite ssh palaikymą į gnupg-agent, pridėdami ‚enable-ssh-ssh-support‘ į ~/.gnupg/gpg-agent.conf

  • Jei failo dar nėra, galite jį tiesiog sukurti.

  • Kur nors į savo ~/.bashrc įrašykite šį kodą (žuvies apvalkalo ieškokite ` čia <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
  • Tiesiog paleiskite sistemą iš naujo arba pabandykite pkill gpg-agent ir atidarykite naują komandinę eilutę, kad įsitikintumėte, jog viskas nustatyta.

  • Jei kyla problemų, pirmą kartą naudodami pabandykite gpg2 --card-status, kad įsitikintumėte, jog gpg agentas bus paleistas.

Pasiruošimas serveriui

Galite sukurti autorizuotų_raktų failą, paleisdami

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

kur

keyID

yra „Nitrokey“ autentifikavimui naudojamo subklavišo ID. „Nitrokey“ raktas jau turi būti žinomas vietiniam GnuPG raktų rinkiniui. Dabar galite pridėti šį failą prie nutolusio serverio autorizuotų raktų (authorized_keys) ir, kai ssh prisijungsite prie serverio, jūsų bus paprašyta PIN kodo, o ne slaptažodžio frazės.

Trikčių šalinimas

Jei vis dar prašoma įvesti slaptažodį, įsitikinkite, kad

echo $SSH_AUTH_SOCK

grąžina kažką panašaus į ‚/run/user/1000/gnupg/S.gpg-agent.ssh‘ arba ‚/home/username/.gnupg/.S.gpg-agent.ssh‘. Deja, praeityje GnuPG buvo keletas pakeitimų, todėl tikrasis turinys gali skirtis priklausomai nuo sistemos ir GnuPG versijos. Kai kuriose sistemose šiame kintamajame gali būti išsaugoti net keli aplankai. Turite pritaikyti pirmiau pateiktą .bashrc kodą taip, kad kintamasis SSH_AUTH_SOCK būtų teisingas. Jei abejojate, ieškokite ‚SSH_AUTH_SOCK‘ eilutėje

man gpg-agent

rasti savo versijai ir (arba) sistemai skirtą tikrąjį kodą.

Galite patikrinti, ar turite įdiegtą ‚pinentry‘ programą per paketų tvarkytuvę. Gali prireikti nustatyti ją ir gpg-agent.conf. Gali prireikti nukreipti gpg-agent į tinkamą TTY.