Ein Passwort kann von einer Maschine, die nie schläft, tausendmal pro Sekunde geraten werden. Ein Schlüssel nicht: Es gibt nichts, das kurz genug wäre, um es zu probieren. Der Umstieg kostet zehn Minuten und beseitigt eine ganze Angriffsklasse.

Das Paar erzeugen

ssh-keygen -t ed25519 -C "you@yourmachine"

Ed25519 ist heute die Vorgabe: kurz, schnell und stark. Geben Sie ihm eine Passphrase - wird der Laptop gestohlen, ist die Passphrase das Einzige zwischen dem Dieb und Ihren Servern.

Die öffentliche Hälfte einspielen

ssh-copy-id ops@your-server

Das hängt den öffentlichen Schlüssel an ~/.ssh/authorized_keys auf dem Server an. Die private Hälfte verlässt Ihre Maschine nie und soll es auch nie.

In einem NEUEN Fenster testen

Schließen Sie die Sitzung nicht, in der Sie sind. Öffnen Sie ein zweites Terminal und melden Sie sich mit dem Schlüssel an. Scheitert es, haben Sie noch das erste Fenster, um es von dort zu reparieren.
ssh ops@your-server

Dann Passwörter abschalten

# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# then
systemctl reload ssh

Neu laden, nicht neu starten: Das Neuladen hält bestehende Sitzungen am Leben, ein Fehler wirft Sie also nicht hinaus.

Wenn es nicht klappt

  • Rechte. SSH verweigert Schlüssel in einem Verzeichnis, das andere lesen können: chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
  • Der falsche Benutzer. Der Schlüssel gehört in das Heimatverzeichnis des Benutzers, als der Sie sich anmelden, nicht in das von root.
  • Den Grund lesen. ssh -v ops@server druckt jeden angebotenen Schlüssel und warum jeder abgelehnt wurde.
Ein Schlüssel je Maschine, nicht ein Schlüssel auf jede Maschine kopiert. Geht ein Laptop verloren, entfernen Sie eine Zeile auf dem Server, und sonst ändert sich nichts.