Seit ein paar Tagen bekomme ich bei jedem ssh connect eine Passwort Abfrage. Kein Problem, die Fingerprints und known_hosts Einträge stimmen. Es kann also kein "man in the middle" Attack sein. Heute morgen habe ich den Fehler dann gesucht. Ruft man ssh mit "-v" auf, sieht man sehr gut, was auf Protokollebene passiert.
Dort sehe ich eine Meldung:
debug1: Skipping ssh-dss key /home/peter/.ssh/id_dsa for not in PubkeyAcceptedKeyTypes
Gut, was heisst das? Augenscheinlich werden die guten alten DSA Keys in neueren SSH Implementierungen nicht mehr unterstützt. Siehe auch Release Notes zu OpenSSH 7.0:
* Support for ssh-dss, ssh-dss-cert-* host and user keys is disabled
by default at run-time. These may be re-enabled using the
instructions at http://www.openssh.com/legacy.html
Na gut, es gibt also 2 Lösungen:
In der SSH config (unter ~/.ssh/config):HostKeyAlgorithms=+ssh-dss
Einen neuen private Key generieren und diesen auf allen Servern in die ~/.ssh/authorized_keys eintragen (nicht vergessen den alten zu löschen).
Die besten Algorithmen sind hier ed25519 (eine schnelle ECDSA Variante die NICHT vom NIST kommt) oder ecdsa. Ich habe beide generiert, da ecdsa am kompatibelsten und ed25519 am schönsten, sichersten und politisch korrekt ist.
# Generieren mit:
ssh-keygen -t ed25519
ssh-keygen -t ecdsa
# Eintragen ins authorized_keys mit:
cat ~/.ssh/id_ed25519.pub ~/.ssh/id_ecdsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys alle-meine-server.was-auch-immer:.ssh/
Das war's auch schon,...
Teile auf Twitter Teile auf Facebook
Kommentare
Momentan gibt es keine Kommentare
Neuer Kommentar