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