In Auszügen gemopst von Mike Kuketz‘ Blog (das man nicht oft genug weiterempfehlen kann) aus der Nitrokey-Artikelserie. Setzt einen entsprechend generierten gnupg-Key zur Authentifizierung voraus. Und wenn man nicht aufpasst bzw. den Key verschlampt, ist SSH halt dicht 🙂

Aktivierung des gpg-agents für SSH:

echo enable-ssh-support >> $HOME/.gnupg/gpg-agent.conf

Anpassen der .bashrc

unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
   export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
fi

Deaktivieren des gpg-agent

gpgconf --kill gpg-agent

Schlüssel exportieren und übertragen

gpg --export-ssh-key <keyid> | ssh <user>@<server-ip> "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Deaktivierung des manuellen Logins auf dem Server unter /etc/ssh/sshd_config

 #PasswordAuthentication yes

ändern in

PasswordAuthentication no

Neustart des OpenSSH-Dienstes

systemctl restart sshd