SSH voor serverbeheer#
Deze handleiding legt uit hoe u uw SSH-server en -client kunt voorbereiden voor gebruik met de Nitrokey.
De Nitrokey zou al PGP sleutels geïnstalleerd moeten hebben en de lokale GnuPG sleutelring zou de sleutels moeten kennen.
Voorbereiding op cliënt#
Zorg ervoor dat ~/.gnupg/gpg.conf ‘use-agent’ bevat;
Voeg ssh-ondersteuning toe aan gnupg-agent door ‘enable-ssh-support’ toe te voegen aan ~/.gnupg/gpg-agent.conf
Als het bestand nog niet bestaat, kunt u het gewoon aanmaken.
Voeg de volgende code ergens in je ~/.bashrc toe (voor visschelp, kijk hier)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Start uw systeem opnieuw op of probeer
pkill gpg-agent
en open een nieuwe commandline om te controleren of alles is ingesteldIn geval van problemen, probeer
gpg2 --card-status
bij het eerste gebruik om er zeker van te zijn dat de gpg-agent wordt opgestart
Voorbereiding voor de server#
U kunt een authorized_keys bestand genereren door ofwel
gpg2 --export-ssh-key keyID >> ~/authorized_keys
waarbij
keyID
is de subsleutel id die wordt gebruikt voor authenticatie op je Nitrokey. De Nitrokey moet al bekend zijn bij de lokale GnuPG sleutelring. Je kunt nu dat bestand toevoegen aan authorized_keys van een server op afstand en wanneer je naar de server ssh’t zal je om een pin worden gevraagd in plaats van een passphrase.
Problemen oplossen#
Als u nog steeds om een wachtwoord wordt gevraagd, controleer dan of
echo $SSH_AUTH_SOCK
geeft iets terug als ‘/run/user/1000/gnupg/S.gpg-agent.ssh’ of ‘/home/gebruikersnaam/.gnupg/.S.gpg-agent.ssh’. Helaas zijn er in het verleden enkele wijzigingen geweest in GnuPG waardoor de werkelijke inhoud kan verschillen per systeem en GnuPG-versie. Op sommige systemen kunnen er zelfs meerdere mappen in deze variabele zijn opgeslagen. Je moet de hierboven gegeven code aanpassen in .bashrc zodat de variabele SSH_AUTH_SOCK correct is. In geval van twijfel zoek naar ‘SSH_AUTH_SOCK’ in
man gpg-agent
om de eigenlijke code voor uw versie/systeem te vinden.
U kunt controleren of u een ‘pinentry’ programma hebt geïnstalleerd via uw pakketbeheerder. Mogelijk moet u instellen in de gpg-agent.conf ook. Misschien moet u ` gpg-agent op de juiste TTY wijzen <https://wiki.archlinux.org/index.php/GnuPG#Configure_pinentry_to_use_the_correct_TTY>`__.