SSH

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

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.