SSH

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

A Nitrokey-nek már telepített PGP-kulcsokkal kell rendelkeznie, és a helyi GnuPG kulcstárnak ismernie kell a kulcsokat.

Felkészülés az ügyfélre

  • Győződjön meg róla, hogy a ~/.gnupg/gpg.conf tartalmazza a «use-agent»

  • Az ssh támogatás hozzáadása a gnupg-agenthez a «enable-ssh-support» hozzáadásával a ~/.gnupg/gpg-agent.conf fájlhoz.

  • Ha a fájl még nem létezik, akkor egyszerűen létrehozhatja.

  • Adja hozzá a következő kódot valahol a ~/.bashrc fájljához (a halak héjához keresse itt).

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
  • Egyszerűen indítsa újra a rendszert, vagy próbálja meg pkill gpg-agent és nyisson egy új parancssort, hogy meggyőződjön róla, hogy minden be van állítva.

  • Problémák esetén próbálja ki a gpg2 --card-status<x> az első használatnál, hogy a gpg-agent biztosan elinduljon.

A szerver előkészítése

Az authorized_keys fájlt a következő futtatással hozhatja létre

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

ahol

keyID

a Nitrokey hitelesítésére használt alkulcs azonosítója. A Nitrokey-nek már ismertnek kell lennie a helyi GnuPG kulcstárban. Most már hozzáadhatod ezt a fájlt egy távoli szerverhez’s authorized_keys és amikor ssh-t használsz a szerverhez, akkor a jelszó helyett egy pin-t fogsz kérni.

Hibaelhárítás

Ha még mindig jelszót kérnek, kérjük, győződjön meg róla, hogy

echo $SSH_AUTH_SOCK

valami olyasmit ad vissza, mint «/run/user/1000/gnupg/S.gpg-agent.ssh» vagy «/home/felhasználónév/.gnupg/.S.gpg-agent.ssh». Sajnos a GnuPG-ben a múltban volt néhány változás, így a tényleges tartalom eltérhet a rendszertől és a GnuPG verziójától függően. Egyes rendszereken akár több mappa is lehet ebben a változóban elmentve. A fenti kódot a .bashrc-ben úgy kell módosítani, hogy az SSH_AUTH_SOCK változó helyes legyen. Kétség esetén keresse meg a «SSH_AUTH_SOCK» -t az alábbiakban.

man gpg-agent

hogy megtalálja a verziójához/rendszeréhez tartozó tényleges kódot.

A csomagkezelőn keresztül ellenőrizheti, hogy telepítve van-e a «pinentry» program. Lehet, hogy a gpg-agent.conf ban is be kell állítanod. Lehet, hogy a megfelelő TTY TTY-re kell irányítani a gpg-agentet.