SSH til serveradministration#
Denne vejledning forklarer, hvordan du forbereder din SSH-server og -klient til brug med Nitrokey.
Nitrokey bør allerede have PGP-nøgler installeret, og den lokale GnuPG-nøglering bør kende nøglerne.
Forberedelse på kunden#
Sørg for, at ~/.gnupg/gpg.conf indeholder ›use-agent‹
Tilføj ssh-understøttelse til gnupg-agent ved at tilføje ›enable-ssh-support‹ til ~/.gnupg/gpg-agent.conf
Hvis filen ikke findes endnu, kan du bare oprette den.
Tilføj følgende kode et sted i din ~/.bashrc (for fish shell, se her)
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi
Du skal blot genstarte dit system eller prøve
pkill gpg-agent
og åbne en ny kommandolinje for at sikre dig, at alt er indstilletHvis der opstår problemer, så prøv
gpg2 --card-status
ved første brug for at sikre dig, at gpg-agenten bliver startet
Forberedelse til serveren#
Du kan generere en authorized_keys-fil ved at køre enten
gpg2 --export-ssh-key keyID >> ~/authorized_keys
hvor
keyID
er det undernøgle-id, der bruges til godkendelse på din Nitrokey. Nitrokey skal allerede være kendt af den lokale GnuPG-nøglering. Du kan nu tilføje denne fil til en fjernserver’s authorized_keys og når du ssh’er til serveren, vil du blive bedt om en pin i stedet for en passphrase.
Fejlfinding#
Hvis du stadig bliver bedt om at angive en adgangskode, skal du sikre dig, at
echo $SSH_AUTH_SOCK
returnerer noget som ›/run/user/1000/gnupg/S.gpg-agent.ssh‹ eller ›/home/username/.gnupg/.S.gpg-agent.ssh‹. Desværre er der sket nogle ændringer i GnuPG i fortiden, så det faktiske indhold kan variere fra system og GnuPG-version til system. På nogle systemer kan der endda være flere mapper i denne variabel gemt. Du er nødt til at tilpasse den ovenfor angivne kode i .bashrc, så variablen SSH_AUTH_SOCK er korrekt. I tvivlstilfælde skal du kigge efter ›SSH_AUTH_SOCK‹ i
man gpg-agent
for at finde den aktuelle kode for din version/dit system.
Du kan kontrollere, om du har et ›pinentry‹ program installeret via din pakkehåndtering. Du skal muligvis også indstille det i gpg-agent.conf. Du skal muligvis pege gpg-agent til den korrekte TTY.