ssh 安全外殼協議

2022-03-22 11:17:45 字數 3158 閱讀 5255

ssh 為 secure shell 的縮寫,由 ietf 的網路工作小組(network working group)所制定;ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。s s h最初是u n i x系統上的乙個程式,後來又迅速擴充套件到其他操作平台。s s h在正確使用時可彌補網路中的漏洞。s s h客戶端適用於多種平台。幾乎所有u n i x平台—包括h p - u x、l i n u x、a i x、s o l a r i s、digital unix、i r i x,以及其他平台—都可執行s s h。

功能

傳統的網路服務程式,如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和資料,別有用心的人非常容易就可以截獲這些口令和資料。而且,這些服務程式的安全驗證方式也是有其弱點的, 就是很容易受到「中間人」(man-in-the-middle)這種方式的攻擊。所謂「中間人」的攻擊方式, 就是「中間人」冒充真正的伺服器接收你的傳給伺服器的資料,然後再冒充你把資料傳給真正的伺服器。 伺服器和你之間的資料傳送被「中間人」一轉手做了手腳之後,就會出現很嚴重的問題。 通過使用ssh,你可以把所有傳輸的資料進行加密,這樣"中間人"這種攻擊方式就不可能實現了,而且也能夠防止dns欺騙和ip欺騙。使用ssh,還有乙個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。ssh有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至為ppp提供乙個安全的"通道"。

驗證

從客戶端來看,ssh提供兩種級別的安全驗證。

第一種級別(基於口令的安全驗證)

只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密, 但是不能保證你正在連線的伺服器就是你想連線的伺服器。可能會有別的伺服器在冒充真正的伺服器, 也就是受到「中間人」這種方式的攻擊。

第二種級別(基於密匙的安全驗證)

需要依靠密匙,也就是你必須為自己建立一對密匙,並把公用密匙放在需要訪問的伺服器上。 如果你要連線到ssh伺服器上,客戶端軟體就會向伺服器發出請求,請求用你的密匙進行安全驗證。伺服器收到請求之後, 先在該伺服器上你的主目錄下尋找你的公用密匙,然後把它和你傳送過來的公用密匙進行比較。如果兩個密匙一致, 伺服器就用公用密匙加密「質詢」(challenge)並把它傳送給客戶端軟體。 客戶端軟體收到「質詢」之後就可以用你的私人密匙解密再把它傳送給伺服器。

用這種方式,你必須知道自己密匙的口令。但是,與第一種級別相比,第二種級別不需要在網路上傳送口令。

第二種級別不僅加密所有傳送的資料,而且「中間人」這種攻擊方式也是不可能的(因為他沒有你的私人密匙)。 但是整個登入的過程可能需要10秒。

層次

ssh 主要有三部分組成:

傳輸層協議 [ssh-trans]

提供了伺服器認證,保密性及完整性。此外它有時還提供壓縮功能。 ssh-trans 通常執行在 tcp/ip連線上,也可能用於其它可靠資料流上。 ssh-trans 提供了強力的加密技術、密碼主機認證及完整性保護。該協議中的認證基於主機,並且該協議不執行使用者認證。更高層的使用者認證協議可以設計為在此協議之上。

使用者認證協議 [ssh-userauth]

用於向伺服器提供客戶端使用者鑑別功能。它執行在傳輸層協議 ssh-trans 上面。當ssh-userauth 開始後,它從低層協議那裡接收會話識別符號(從第一次金鑰交換中的交換雜湊h )。會話識別符號唯一標識此會話並且適用於標記以證明私鑰的所有權。 ssh-userauth 也需要知道低層協議是否提供保密性保護。

連線協議 [ssh-connect]

將多個加密隧道分成邏輯通道。它執行在使用者認證協議上。它提供了互動式登入話路、遠端命令執行、** tcp/ip 連線和** x11 連線。

結構

ssh是由客戶端和服務端的軟體組成的,有兩個不相容的版本分別是:1.x和2.x。 用ssh 2.x的客戶程式是不能連線到ssh 1.x的服務程式上去的。openssh 2.x同時支援ssh 1.x和2.x。

服務端是乙個守護程序(demon),他在後台執行並響應來自客戶端的連線請求。服務端一般是sshd程序,提供了對遠端連線的處理,一般包括公共金鑰認證、金鑰交換、對稱金鑰加密和非安全連線。

客戶端包含ssh程式以及像scp(遠端拷貝)、slogin(遠端登陸)、sftp(安全檔案傳輸)等其他的應用程式。

他們的工作機制大致是本地的客戶端傳送乙個連線請求到遠端的服務端,服務端檢查申請的包和ip位址再傳送金鑰給ssh的客戶端,本地再將金鑰發回給服務端,自此連線建立。ssh 1.x和ssh 2.x在連線協議上有一些差異。

一旦建立乙個安全傳輸層連線,客戶機就傳送乙個服務請求。當使用者認證完成之後,會傳送第二個服務請求。這樣就允許新定義的協議可以與上述協議共存。連線協議提供了用途廣泛的各種通道,有標準的方法用於建立安全互動式會話外殼和**(「隧道技術」)專有 tcp/ip 埠和 x11 連線。

ssh被設計成為工作於自己的基礎之上而不利用超級伺服器(inetd),雖然可以通過inetd上的tcpd來執行ssh程序,但是這完全沒有必要。啟動ssh伺服器後,sshd執行起來並在預設的22埠進行監聽(你可以用 # ps -waux | grep sshd 來檢視sshd是否已經被正確的執行了)如果不是通過inetd啟動的ssh,那麼ssh就將一直等待連線請求。當請求到來的時候ssh守護程序會產生乙個子程序,該子程序進行這次的連線處理。

應用

ssh另類應用:用ssh做socks5**

3.執行myentunnel.exe,設定:ssh server裡頭填上ssh ftp的位址或ip,填好使用者名稱和密碼,點connect,系統欄裡面的小鎖變成綠色就連線成功了。

4.設定瀏覽器。ie是不支援socks**的,用firefox好了,開啟firefox的**設定頁,在socks主機處填上127.0.0.1埠填原先設定的,預設7070。

win主機環境執行ssh命令的方法

一些常用的shell命令如下:

cd[目錄名]轉換路徑

cd.. 返回上級目錄

ls顯示當前目錄下所有檔案

rm[-r]-f[檔名]刪除檔案,加[-r]可以刪除檔案下所有子檔案,如rm -rf [abc]刪除abc資料夾及資料夾下的所有檔案

unzip[檔名]解壓檔案

cp -rpf .a/* b 將a資料夾中的所有檔案拷貝到其上級目錄b中

SSH 安全外殼協議

一 ssh介紹 什麼是ssh?傳統的網路服務程式,如 ftp pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和資料,別有用心的人非常容易就可以截獲這些口令和資料。而且,這些服務程式的安全驗證方式也是有其弱點的,就是很容易受到 中間人 man in the middle 這種...

SSH 安全外殼協議

1 ssh簡介 ssh 為 secure shell 的縮寫,中文名稱為安全殼協議。ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露問題。ssh最初是unix系統上的乙個程式,...

ssh 安全外殼協議

ssh 為 secure shell 的縮寫,由 ietf 的網路工作小組 network working group 所制定 ssh 為建立在應用層和傳輸層基礎上的安全協議。ssh 是目前較可靠,專為遠端登入會話和其他網路服務提供安全性的協議。利用 ssh 協議可以有效防止遠端管理過程中的資訊洩露...