SSH

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

active

inactive

active

active

inactive

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 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 indstillet

  • Hvis 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 føje denne fil til en fjernserver’s authorized_keys og når du ssh’er til serveren, bliver du 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.