首頁  >  文章  >  系統教程  >  Linux系統中如何查看SSH版本

Linux系統中如何查看SSH版本

王林
王林轉載
2024-01-01 09:09:321572瀏覽
導讀 我想到SSH存在1和2兩個版本(SSH1和SSH2)。這兩者之間有什麼不同?還有我該怎麼在Linux上檢查SSH協定的版本?

Linux系統中如何查看SSH版本

#安全Shell(SSH)透過加密的安全通訊通道來遠端登入或遠端執行命令。 SSH被設計來取代不安全的明文協議,如telnet、rsh和rlogin。 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。

方法一

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

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

Protocol 2

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

Protocol 1
方法二

如果因為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 

Linux系統中如何查看SSH版本

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

以上是Linux系統中如何查看SSH版本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:linuxprobe.com。如有侵權,請聯絡admin@php.cn刪除