Linux中國

Linux有問必答:如何在Linux上檢查SSH的版本

SSH1 vs. SSH2

SSH協議規範存在一些小版本的差異,但是有兩個主要的大版本:SSH1 (版本號 1.XX) 和 SSH2 (版本號 2.00)。

事實上,SSH1和SSH2是兩個完全不同互不兼容的協議。SSH2明顯地提升了SSH1中的很多方面。首先,SSH是宏設計,幾個不同的功能(如:認證、傳輸、連接)被打包進一個單一的協議,SSH2帶來了比SSH1更強大的安全特性,如基於MAC的完整性檢查,靈活的會話密鑰更新、充分協商的加密演算法、公鑰證書等等。

SSH2由IETF標準化,且它的實現在業界被廣泛部署和接受。由於SSH2對於SSH1的流行和加密優勢,許多產品對SSH1放棄了支持。在寫這篇文章的時候,OpenSSH仍舊支持SSH1和SSH2,然而在所有的現代Linux發行版中,OpenSSH伺服器默認禁用了SSH1。

檢查支持的SSH協議版本

方法一

如果你想檢查本地OpenSSH伺服器支持的SSH協議版本,你可以參考/etc/ssh/sshd_config這個文件。用文本編輯器打開/etc/ssh/sshd_config,並且查看"Protocol"欄位。

如果如下顯示,就代表伺服器只支持SSH2。

Protocol 2

如果如下顯示,就代表伺服器同時支持SSH1和SSH2。

Protocol 1,2

方法二

如果因為OpenSSH服務其運行在遠端伺服器上而你不能訪問/etc/ssh/sshd_config。你可以使用叫ssh的SSH客戶端來檢查支持的協議。具體說來,就是強制ssh使用特定的SSH協議,接著我么查看SSH伺服器的響應。

下面的命令強制ssh使用SSH1:

$ ssh -1 user@remote_server

下面的命令強制ssh使用SSH2:

$ ssh -2 user@remote_server

如果遠程SSH伺服器只支持SSH2,那麼第一個帶「-1」的選項就會出現像下面的錯誤信息:

Protocol major versions differ: 1 vs. 2

如果SSH伺服器同時支持SSH1和SSH2,那麼兩個命令都有效。

方法三

另一個檢查版本的方法是運行SSH掃描工具,叫做scanssh。這個命令行工具在你想要檢查一組IP地址或者整個本地網路來升級SSH1兼容的SSH伺服器時很有用。

下面是基本的SSH版本掃描語法。

$ sudo scanssh -s ssh -n [ports] [IP addresses or CIDR prefix] 

"-n"選項可以指定掃描的SSH埠。你可以用都好分隔來掃描多個埠,不帶這個選項,scanssh會默認掃描22埠。

使用下面的命令來發現192.168.1.0/24本地網路中的SSH伺服器,並檢查SSH協議v版本:

$ sudo scan -s ssh 192.168.1.0/24 

如果scanssh為特定IP地址報告「SSH-1.XX-XXXX」,這暗示著相關的SSH伺服器支持的最低版本是SSH1.如果遠程伺服器只支持SSH2,scanssh會顯示「SSH-2.0-XXXX」。

via: http://ask.xmodulo.com/check-ssh-protocol-version-linux.html

譯者:geekpi 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國