Wie kann ich SSH beim ersten Zugriff auf einen Server zwingen, mir den RSA-Schlüssel zu geben und ihn automatisch zu speichern, wenn der Benutzer dies genehmigt?
Derzeit bietet es mir den ECDSA-Schlüssel an. Da ich den RSA-Schlüssel bereits kenne, würde ich es vorziehen, wenn der RSA-Schlüssel an dieser Stelle angezeigt wird.
Ich habe versucht:
ssh -o RSAAuthentication=yes user@server
Leider gibt mir das einen ECDSA-Schlüssel und die Are you sure you want to continue connecting (yes/no)?
Nachricht.
Antworten:
Durch Entfernen der ECDSA-Algorithmen aus der
HostKeyAlgorithms
Konfigurationsvariablen.Ich habe einfach alle ECDSA-Algorithmen aus der Standardliste entfernt .
Das können Sie natürlich
.ssh/config
für diese Maschine eingeben:quelle
HostKeyAlgorithms [email protected],ssh-rsa
stattdessen.Verwenden Sie RSA nicht, da ECDSA der neue Standard ist.
Tun Sie dies auf dem Server:
ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key.pub
und notieren Sie sich diese Nummer.Auf dem Client können Sie eine SSH-Verbindung zum Host herstellen, und wenn Sie dieselbe Nummer sehen, können Sie die Eingabeaufforderung mit
Are you sure you want to continue connecting (yes/no)?
Ja beantworten . Der ECDSA-Schlüssel wird dann für die zukünftige Verwendung auf dem Client aufgezeichnet.quelle
Ja, OK, wechseln Sie bald zu ECDSA, aber versuchen Sie in der Zwischenzeit Folgendes:
quelle
FingerprintHash
Option ist unnötig, lass den ganzen Teil weg.Ich habe gerade diese Zeile hinzugefügt
zu
und es funktioniert gut in dieser Version.
quelle
Nur um die Antwort von Tumbleweed zu verbessern, die einen toten Link zum Auffinden der alten Liste von Algorithmen enthält.
Entscheiden Sie sich zunächst für eine Liste von Algorithmen. Um die alte Liste zu finden, verwenden Sie
ssh -vv
:Suchen Sie nach den 2 Zeilen wie "Host-Schlüssel-Algorithmen: ...", wobei die erste das Angebot des Servers und die zweite das des Clients zu sein scheint. Oder versuchen Sie dies, um diese beiden Zeilen automatisch auszuwählen (und drücken Sie STRG + D, um das Fenster zu schließen):
Jetzt filtern Sie es nach unten ... Sie sollten alle dss / dsa-Dateien entfernen, da sie längst veraltet sind, und Sie wollten auch ecdsa entfernen (genau wie ich), also zum Beispiel, wenn Sie Folgendes hatten:
Sie sollten am Ende mit:
Bearbeiten Sie nun Ihre Konfiguration. Für deine eigene Konfiguration:
Für die systemweite Konfiguration:
Fügen Sie global eine neue Zeile hinzu:
oder für einen bestimmten Host (nicht ideal für die serverweite Konfiguration):
ssh -vv
Fügen Sie anstelle der eingegebenen Liste die Liste ein, die Sie aus der Ausgabe abgeleitet haben, ohne den Teil "Hostschlüsselalgorithmen:".quelle
Einige Punkte sind verwirrend, da es möglich ist, Schlüsselalgorithmen aus vorhandenen Standardeinstellungen zu entfernen. Die Schlüssel der höchsten Ebene sind die neuen RSA-sha2 / 256 / 512- und ed25519-Schlüssel für beste Sicherheit mit ssh-keygen -t ras -a -b 4096 -a 113 zu gen. Die Unterstützung älterer Versionen liest anscheinend die SSH-Nachricht, dass SSH1 komplett verschwunden sein wird - seine maximal abgeschriebenen 45-Bit- und 96-Bit-DSA-Schlüssel werden ebenfalls eliminiert. Seine auf 128/1024 Bit max behoben gefunden hackbar. (Möglicherweise hat NSA das getan, und lame / excuse, da der Debug-Code Zweifel an der Bezeich- nung von Heartbleed aufkommen ließ.) Daher müssen alle kostenintensiven sicheren RSA-Schlüsselstrukturen überarbeitet werden, um höhere Standards zu unterstützen und aufrechtzuerhalten. Legen Sie fest, welche Schlüssel Sie verwenden möchten, wie in / etc / ssh / sshd_config beschrieben. Versuchen Sie, 2-Schlüssel-Authentifizierungsschlüssel auszuführen. 3-Schlüssel funktioniert auch. Beispiel: sshd_config "AuthenticationMethods publickey, publickey, publickey" - Stellen Sie sicher, dass ssh -Q kex-Listings sowohl mit A- als auch mit B-Servern oder -Desktops übereinstimmen. ecdsa-schlüssel, die in der produktion neuer sind, sind auch kina-schwach und nicht zu gebrauchen. oder get - keyexchange verweigert teilweisen Zugriff sichere Nachricht. Viele gute Infos nur geduldig, um es zu suchen.
quelle
Wenn Sie auf dem RSA-Schlüsselansatz bestehen, können Sie auch
ssh-keygen -t rsa
den Server eingeben, für den Sie SSH einrichten möchten.Damit sollten öffentliche und private RSA-Schlüssel unter '~ / .ssh / id_rsa' generiert werden. Jetzt müssen Sie nur noch den öffentlichen Schlüssel
$HOME/.ssh/authorized_keys
von allen Computern, von denen Sie ssh ausführen möchten, auf den Computer kopieren, auf dem Sie Ihre RSA-Schlüssel generiert haben.Und dann lehnen Sie sich zurück und entspannen Sie sich!
quelle