SSH för serveradministration#
Den här guiden förklarar hur du förbereder din SSH-server och klient för användning med Nitrokey.
Nitrokey bör redan ha PGP-nycklar installerade och den lokala GnuPG-nyckelringen bör känna till nycklarna.
Förberedelser på uppdragsgivaren#
Kontrollera att ~/.gnupg/gpg.conf innehåller ’use-agent’
Lägg till ssh-stöd till gnupg-agent genom att lägga till ’enable-ssh-support’ till ~/.gnupg/gpg-agent.conf
Om filen ännu inte finns kan du bara skapa den.
Lägg till följande kod någonstans i din ~/.bashrc (för fish shell, se här)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Starta om systemet eller prova
pkill gpg-agent
och öppna en ny kommandorad för att kontrollera att allt är inställt.Vid problem kan du prova
gpg2 --card-status
vid första användningen för att se till att gpg-agenten startas.
Förberedelser för servern#
Du kan generera en fil med auktoriserade nycklar genom att köra antingen
gpg2 --export-ssh-key keyID >> ~/authorized_keys
där
keyID
är det undernyckel-id som används för autentisering på din Nitrokey. Nitrokey måste redan vara känd i den lokala GnuPG-nyckelringen. Du kan nu lägga till den filen till en fjärrserver’s authorized_keys och när du sshar till servern kommer du’att bli tillfrågad om en pin istället för en lösenfras.
Felsökning#
Om du fortfarande blir ombedd att ange ett lösenord ska du kontrollera att
echo $SSH_AUTH_SOCK
returnerar något som ’/run/user/1000/gnupg/S.gpg-agent.ssh’ eller ’/home/username/.gnupg/.S.gpg-agent.ssh’. Tyvärr har det skett en del förändringar i GnuPG i det förflutna, vilket gör att det faktiska innehållet kan skilja sig åt mellan system och GnuPG-version. På vissa system kan det till och med finnas flera mappar i denna variabel som sparas. Du måste anpassa den ovan angivna koden i .bashrc så att variabeln SSH_AUTH_SOCK är korrekt. Om du är osäker kan du leta efter ’SSH_AUTH_SOCK’ i
man gpg-agent
för att hitta den aktuella koden för din version/det aktuella systemet.
Du kan kontrollera om du har ett ’pinentry’ program installerat via din pakethanterare. Du kan behöva sätta det i gpg-agent.conf också. Det kan hända att du måste punkta gpg-agent till rätt TTY.