Es kann hilfreich sein zu zeigen, welche Nachforschungen Sie bereits angestellt haben
Drew Khoury,
@DrewKhoury Ich habe nur mit Google versucht, eine Antwort auf diese Frage zu finden, aber es wurde kein Ergebnis gefunden. Niemand erklärt, wie ich das aktuell verwendete Verbindungsprotokoll (ssh1 oder ssh2) sehen kann.
codiac
Antworten:
46
Sobald du drin bist, sagst du:
ssh -v localhost
Es wird Ihnen die genaue Version des Servers mitteilen.
Es scheint nicht, dass dies den aktuellen Verbindungstyp zeigt.
Codiac
18
Ich weiß, dass dies eine alte Frage ist, aber da ich darauf gestoßen bin, konnte ich nicht widerstehen, einen alternativen Weg zu veröffentlichen.
Wie von cstamas vorgeschlagen, können ssh -v localhostSie im ausführlichen Modus einfach ssh to your self 127.0.0.1 verwenden, wodurch eine Debug-Meldung über den Fortschritt angezeigt wird. Ja, durch diesen Vorgang können Sie den oberen Rand der Kommunikation einsehen und die aktuell ausgeführte SSH-Version abrufen.
Aber wenn Sie die ssh manSeite lesen , werden Sie die -VOption auf ssh nützlicher finden. Die SSH-Manpage rausgenommen :
-V Versionsnummer anzeigen und beenden.
-v Ausführlicher Modus. Bewirkt, dass ssh Debugging-Meldungen über den Fortschritt ausgibt. Dies ist hilfreich beim Debuggen von Verbindungs-, Authentifizierungs- und Konfigurationsproblemen. Mehrere -v-Optionen erhöhen die Ausführlichkeit. Das Maximum ist 3.
Also denke ich, es wäre besser, einfach ssh -Vetwas zu tun und etwas Ähnliches zu bekommen wie:
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
Das ist die Version des Programms , nicht das Protokoll, das für eine Verbindung verwendet wird. Wie eine 3-jährige Antwort richtig erklärt hat, kann dasselbe Programm je nach Konfiguration sowohl SSH1- als auch SSH2-Protokolle unterstützen oder auch nicht.
Dave_thompson_085
11
Kitt Aktivieren Sie
in Sitzung, Protokollierung das Optionsfeld "SSH-Pakete und Rohdaten". Wählen Sie die Protokolldatei als putty.log an einem Ort Ihrer Wahl aus. Stellen Sie die Verbindung her. Das solltest du sehen:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
Im Folgenden erfahren Sie, was SSH-2.0 bedeutet.
Andere Methoden
Sie können auch versuchen, den Telnet-Client zu verwenden, aber auf Port 22 zeigen:
telnet test1 22
Wenn Sie eine Verbindung herstellen, sehen Sie:
Versuch 192.168.144.145 ... Verbunden mit test1. Escape-Zeichen ist '^]'. SSH-2.0-OpenSSH_5.3
Die letzte Zeile ist die zu suchende:
SSH-2.0-OpenSSH_5.3
Wenn es heißt, SSH-2.0dass das gut ist, unterstützt der SSH-Server, mit dem Sie verbunden sind, nur SSH Protocol Version 2. Es werden keine Verbindungen von SSH V1 Protocol Clients unterstützt.
Wenn Sie jedoch Folgendes sehen:
SSH-1.99-OpenSSH_5.3
Das bedeutet dann, dass das Server-Ende weiterhin SSL-Protokoll Version 1 unterstützt. In der sshd_configDatei ist etwa Folgendes enthalten:
Protocol 1,2
Protokoll 1 ist anfällig und sollte nicht verwendet werden.
Also, um das klar zu stellen. Wenn Sie SSH-2 sehen, wenn Sie an Port 22 des Remote-Servers telneten, können Sie nur ssh Protocol Version 2 verwenden, da der Server Protokoll 1 nicht unterstützt.
Gemäß der obigen Antwort zeigt das Flag -v eine Zeile:
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
oder:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
Die einzige Methode, die mir bekannt ist, erfordert, dass man über ausreichende Berechtigungen verfügt, um die ssh-Protokolleinträge in anzuzeigen /var/log/auth.log.
Das erste und zweite Feld der SSH_CONNECTIONVariablen geben die Quell-IP und den Quell-Port meiner Verbindung an. Durch grep-ing für diese Werte in /var/log/auth.log, kann ich den Protokolleintrag findet aus , wenn meine SSH - Verbindung authentifiziert wurde.
$ sudo grep -F ' from 127.0.0.1 port 12375 ' /var/log/auth.log | grep ssh
Jun 26 16:29:52 morton sshd[20895]: Accepted keyboard-interactive/pam for jim from 127.0.0.1 port 12375 ssh2
Dieser Protokolleintrag gibt an, dass meine aktuelle Verbindung das ssh2-Protokoll verwendet. Wenn die SSH-Sitzung mehrere Tage geöffnet war, befindet sich der Protokolleintrag möglicherweise in /var/log/auth.log.0einer älteren auth.logDatei.
Antworten:
Sobald du drin bist, sagst du:
Es wird Ihnen die genaue Version des Servers mitteilen.
quelle
Ich weiß, dass dies eine alte Frage ist, aber da ich darauf gestoßen bin, konnte ich nicht widerstehen, einen alternativen Weg zu veröffentlichen.
Wie von cstamas vorgeschlagen, können
ssh -v localhost
Sie im ausführlichen Modus einfach ssh to your self 127.0.0.1 verwenden, wodurch eine Debug-Meldung über den Fortschritt angezeigt wird. Ja, durch diesen Vorgang können Sie den oberen Rand der Kommunikation einsehen und die aktuell ausgeführte SSH-Version abrufen.Aber wenn Sie die
ssh man
Seite lesen , werden Sie die-V
Option auf ssh nützlicher finden. Die SSH-Manpage rausgenommen :Also denke ich, es wäre besser, einfach
ssh -V
etwas zu tun und etwas Ähnliches zu bekommen wie:Hoffe das hilft.
quelle
Kitt Aktivieren Sie in Sitzung, Protokollierung das Optionsfeld "SSH-Pakete und Rohdaten". Wählen Sie die Protokolldatei als putty.log an einem Ort Ihrer Wahl aus. Stellen Sie die Verbindung her. Das solltest du sehen:
Im Folgenden erfahren Sie, was SSH-2.0 bedeutet.
Andere Methoden Sie können auch versuchen, den Telnet-Client zu verwenden, aber auf Port 22 zeigen:
Wenn Sie eine Verbindung herstellen, sehen Sie:
Versuch 192.168.144.145 ... Verbunden mit test1. Escape-Zeichen ist '^]'. SSH-2.0-OpenSSH_5.3
Die letzte Zeile ist die zu suchende:
Wenn es heißt,
SSH-2.0
dass das gut ist, unterstützt der SSH-Server, mit dem Sie verbunden sind, nur SSH Protocol Version 2. Es werden keine Verbindungen von SSH V1 Protocol Clients unterstützt.Wenn Sie jedoch Folgendes sehen:
SSH-1.99-OpenSSH_5.3
Das bedeutet dann, dass das Server-Ende weiterhin SSL-Protokoll Version 1 unterstützt. In der
sshd_config
Datei ist etwa Folgendes enthalten:Protokoll 1 ist anfällig und sollte nicht verwendet werden.
Also, um das klar zu stellen. Wenn Sie SSH-2 sehen, wenn Sie an Port 22 des Remote-Servers telneten, können Sie nur ssh Protocol Version 2 verwenden, da der Server Protokoll 1 nicht unterstützt.
Gemäß der obigen Antwort zeigt das Flag -v eine Zeile:
oder:
Du willst es sehen
version 2.0
.quelle
Sie können dies ziemlich schnell mit netcat von Ihrem lokalen Computer aus erreichen, zum Beispiel:
quelle
Das gefällt mir besser:
Der Vorteil hierbei ist, dass dies programmgesteuert erfolgen kann, da die Verbindung nicht offen gehalten wird. Versuchen Sie für Python:
quelle
Die einzige Methode, die mir bekannt ist, erfordert, dass man über ausreichende Berechtigungen verfügt, um die ssh-Protokolleinträge in anzuzeigen
/var/log/auth.log
.Das erste und zweite Feld der
SSH_CONNECTION
Variablen geben die Quell-IP und den Quell-Port meiner Verbindung an. Durchgrep
-ing für diese Werte in/var/log/auth.log
, kann ich den Protokolleintrag findet aus , wenn meine SSH - Verbindung authentifiziert wurde.Dieser Protokolleintrag gibt an, dass meine aktuelle Verbindung das ssh2-Protokoll verwendet. Wenn die SSH-Sitzung mehrere Tage geöffnet war, befindet sich der Protokolleintrag möglicherweise in
/var/log/auth.log.0
einer älterenauth.log
Datei.quelle