Wie kann ich die unterstützten MACs, Chiffren, Schlüssellängen und KexAlogrithmen ermitteln, die von meinen SSH-Servern unterstützt werden?
Ich muss eine Liste für eine externe Sicherheitsüberprüfung erstellen. Ich suche etwas ähnliches openssl s_client -connect example.com:443 -showcerts
. Aus meiner Forschung ssh
verwendet die Standardchiffren wie in aufgeführt man sshd_config
. Ich benötige jedoch eine Lösung, die ich in einem Skript verwenden kann, und . Ich brauche mich hier zu korrigieren: Sie können angeben , man sshd_config
liste keine Informationen zur Schlüssellänge aufServerKeyBits
in sshd_config
.
Ich denke, das ssh -vv localhost &> ssh_connection_specs.out
gibt die Informationen zurück, die ich brauche, aber ich bin nicht sicher, ob die aufgelisteten Chiffren die Chiffren sind, die vom Client oder vom Server unterstützt werden. Ich bin mir auch nicht sicher, wie ich dieses nicht interaktive Skript ausführen soll.
Gibt es eine bequeme Möglichkeit, SSH
Verbindungsinformationen abzurufen?
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
wie von @Jakuje vorgeschlagen, nur auf RHEL7-Hosts funktioniert, nicht jedoch auf RHEL6.nmap --script SSH2-hostkey localhost
nmap --script ssh-hostkey localhost
ssh -vv
gibt die unterstützte Funktionalität als Client zu Server (ctos) und Server zu Client (stoc) aus. Es scheint jedoch, dass diese Ausgaben auf das beschränkt sind, was beide Seiten unterstützen, was sie für eine Sicherheitsüberprüfung weniger nützlich macht.Antworten:
Sie vermissen einige Punkte in Ihrer Frage:
ServerKeyBits
ist die Option für Protokoll Version 1, die Sie hoffentlich deaktiviert haben!Unterstützte Chiffren, MACs und KexAlgorithmen sind immer manuell verfügbar, und dies hat nichts mit Schlüssellängen zu tun.
Aktiviert Chiphers, MACs und KexAlgorithms sind diejenigen , die unter Verwendung von Verbindung angeboten werden, wie Sie darauf hinweisen. Sie können aber auch auf andere Weise gewonnen werden, beispielsweise durch Verwendung
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Um die Schlüssellänge Ihrer Serverschlüssel zu ermitteln, können Sie ssh-keygen verwenden:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
Sie werden aber wahrscheinlich auch die Modulgrößen wollen, die während des Schlüsselaustauschs angeboten und verwendet werden, aber es hängt wirklich von der Schlüsselaustauschmethode ab, aber es sollte auch von der Debug-Ausgabe lesbar sein
ssh -vvv host
.quelle
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
nur meine RHEL7-Hosts funktionierten, nicht jedoch RHEL6.nmap --script SSH2-hostkey localhost
nmap --script ssh-hostkey localhost
Es sieht so aus, als ob die Antwort auf /superuser//a/1219759/173408 auch eine Antwort auf Ihre Frage ist. Es passt in eine Zeile:
Hier ist die Ausgabe auf einem einfachen Debian 9.4-Computer mit der aktuellen SSH-Version:
quelle
PORT STATE SERVICE VERSION 22/tcp filtered ssh
mit diesem Befehl eine - obwohl ich mich über ssh bei demselben Server anmelden kann.1.2.3.4
die IP Ihres Servers ersetzt?