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@serverdruckt 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.