いろいろ備忘録日記

主に .NET とか Go とか Python絡みのメモを公開しています。

sshでリモート側のプロトコルとバージョンを調べる

概要

よく忘れるのでメモメモ。。。

sshで接続する先のサーバにインストールされている ssh のバージョンとかプロトコルを調べたいときに使えます。

telnet で確認

telnet で 接続してみるとバージョンとプロトコルが表示されます。

$ telnet xxx.xxx.xxx.xxx 22
Trying xxx.xxx.xxx.xxx...
Connected to xxx.xxx.xxx.xxx.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.0

ssh -v で確認

ssh に -v オプションを付けて実行するとデバッグ出力が有効になります。

大量に出力されるのですが、その中にリモート側のプロトコルとバージョンがあります。

ちなみに、自分(ローカル)の ssh のバージョンを表示する場合に使うのは -V です。こっちは大文字。

$ ssh -v xxxxx@xxx.xxx.xxx.xxx

たくさん出力されている中に以下のような出力があります。

debug1: Remote protocol version 2.0, remote software version OpenSSH_8.0

grep とかしたい場合は、標準エラー出力をリダイレクトさせてから行うと可能ですが

そのままログインできちゃうとプロンプトが返ってこなくなるので、ログインに失敗するようにして実行するほうがよいですね。

$ ssh -v xxxxx@xxx.xxx.xxx.xxx 2>&1 | grep "Remote protocol"

参考情報

serverfault.com

stackoverflow.com


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com