回答:
これは古い質問であることを知っていますが、私はそれに出くわしたので、別の方法を投稿することに抵抗できませんでした。
以下のようcstamasが提案を使用できssh -v localhost
進捗状況のメッセージをデバッグ表示され、冗長モードであなたの自己127.0.0.1に単純にsshできます。はい、このプロセスを通じて、通信の上部を見ることができ、現在実行しているSSHバージョンを取得できます。
しかし、このssh man
ページを読むと、-V
ssh のオプションがより役立つことがわかります。sshのmanページを取り出しました:
-Vバージョン番号を表示して終了します。
-v詳細モード。sshに進行状況に関するデバッグメッセージを出力させます。これは、接続、認証、および構成の問題のデバッグに役立ちます。複数の-vオプションを使用すると、冗長性が高まります。最大値は3です。
ですから、次のようなことをするだけでよいと思いますssh -V
。
> ssh -V
OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013
お役に立てれば。
[セッションのパテ]、[ログ]で、[SSHパケットと生データ]ラジオボタンを選択します。選択した場所でputty.logとしてログファイルを選択します。接続します。見るべき:
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: Using SSH protocol version 2
SSH-2.0の意味の詳細については、以下を参照してください。
その他の方法 telnetクライアントを使用して、ポート22をポイントすることもできます。
telnet test1 22
接続すると、以下が表示されます。
192.168.144.145を試行しています... test1に接続しました。エスケープ文字は「^]」です。SSH-2.0-OpenSSH_5.3
最後の行は、探すべきものです:
SSH-2.0-OpenSSH_5.3
それがSSH-2.0
それでいいと言ったら、接続したsshサーバーはSSHプロトコルバージョン2のみをサポートします。SSHV1プロトコルクライアントからの接続はサポートしません。
ただし、表示される場合:
SSH-1.99-OpenSSH_5.3
これは、サーバー側がまだSSLプロトコルバージョン1をサポートしていることを意味しsshd_config
ます。ファイルには次のようなものがあります。
Protocol 1,2
プロトコル1は脆弱であるため、使用しないでください。
だからそれをまっすぐに取得します。リモートサーバーのポート22にtelnetで接続するときにSSH-2が表示される場合、サーバーはプロトコル1をサポートしていないため、sshプロトコルバージョン2のみを使用できます。
上記のcstamasの回答に従って、-vフラグは次の行を表示します。
debug1: Remote protocol version 1.99, remote software version OpenSSH_5.3
または:
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
version 2.0
そこを見たいです。
ローカルマシンからnetcatを使用して、これを非常に迅速に取得できます。次に例を示します。
$ nc [IP_ADDRESS] 22
SSH-2.0-OpenSSH_5.3
私はこれが好きです:
$ echo ~ | nc localhost 22
SSH-1.99-OpenSSH_3.9p1
Protocol mismatch.
$
ここでの利点は、接続が開かれていないため、プログラムで実行できることです。Pythonの場合:
ssh_protocol = float(re.search(r"SSH-(\d.\d+)").group(1))
私が知っている唯一の方法は、のsshログエントリを表示するのに十分な権限を持っていることを必要とします/var/log/auth.log
。
$ echo $SSH_CONNECTION
127.0.0.1 12375 127.0.0.1 22
SSH_CONNECTION
変数の最初と2番目のフィールドは、接続のソースIPとソースポートを示します。grep
でそれらの値のために-ing /var/log/auth.log
、私は私のssh接続が認証されたときからのログエントリを見つけることができます。
$ 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
このログエントリは、現在の接続がssh2プロトコルを使用していることを示しています。もちろん、sshセッションが数日間開かれている場合、ログエントリは/var/log/auth.log.0
古いauth.log
ファイルである可能性があります。