一、概述
ssh,secure shell,建立在應用層和傳輸層上的安全協議,最大的特點是所有傳輸資料加密,相比傳統的telnet、ftp等明文傳輸連線方式更加安全可靠。
由傳輸層協議trans、使用者認證協議userauth和連線協議connect三部分組成。
二、連線過程
服務端後台常駐守護程序,用於響應客戶端的連線請求。
首先,本地客戶端向遠端服務端傳送連線請求。
接下來,服務端檢查請求資訊並傳送金鑰給客戶端。
最後,客戶端再將金鑰返回給服務端,最終建立連線。
建立連線後,服務端會對客戶端進行身份認證以確定是否向其開放訪問許可權。
三、加密方法
3.1 口令
使用賬號密碼登入遠端主機,可能會受到「中間人」攻擊。
3.2 金鑰
3.2.1 對稱加密 vs 非對稱加密
對稱加密的雙方使用同乙個金鑰或一對能夠互相推斷的金鑰對對資訊進行加密和解密,對稱加密通常用於連線會話session中
非對稱加密需要用到公鑰和私鑰兩個金鑰,兩個金鑰間單向加密,公鑰加密的資訊可以由私鑰解密,而私鑰加密的資訊公鑰無法由公鑰解密。非對稱加密常用於建立連線和身份認證過程中。
3.2.2 金鑰的使用
客戶端向服務端發起tcp連線,服務端提供自己的公鑰以讓客戶端確認連線物件無誤。
接下來,雙方使用diffle-hellman演算法,通過共享私有資料和公有資料生成對稱式金鑰,進而建立會話加密通道,進入身份驗證階段。
a) 客戶端傳送自己的金鑰id給服務端
b) 服務端在authorized_keys中查詢對應的公鑰
c) 服務端使用該公鑰加密資訊傳送給客戶端
d) 客戶端使用私鑰解密資訊,做md5雜湊,並返回給服務端
e) 服務端將原資訊做md5雜湊,並用對稱式金鑰加密,與接收到的雜湊加密資訊進行比對
f) 驗證通過,服務端將向客戶端開放訪問許可權
四、常用指令
4.1 生成金鑰 ssh-keygen -t(加密演算法) -b(金鑰長度) -p(私鑰加密密碼) -f(金鑰儲存路徑)
4.2 建立連線 ssh [options] user@host -p(埠) -i(金鑰檔案路徑)
4.3 向服務端傳送公鑰 ssh-copy-id [options] user@host -p(埠) -i(金鑰檔案路徑)
4.4 拷貝檔案或目錄 scp [options] file_source file_target -p(埠) -i(金鑰檔案路徑) -p(保留檔案原始資訊) -r(遞迴複製整個目錄)
五、known_hosts
客戶端首次連線到服務端,服務端會將公鑰傳送給客戶端,此時客戶端會將其存入 known_hosts檔案中。
之後的每次連線,客戶端核對服務端傳送的公鑰與記錄是否相一致,避免受到dns劫持攻擊。
SSH 協議基礎
ssh的英文全稱為secure shell,是ietf internet engineering task force 的network working group所制定的一族協議,其目的是要在非安全網路上提供安全的遠端登入和其他安全網路服務。我們可以簡單理解為 rlogin和telnet等的替代方...
SSH協議介紹
1 什麼是ssh ssh是英文secure shell的簡寫形式。通過使用ssh,你可以把所有傳輸的資料進行加密,這樣 中間人 這種攻擊方式就不可能實現了,而且也能夠防止dns欺騙和ip欺騙。使用ssh,還有乙個額外的好處就是傳輸的資料是經過壓縮的,所以可以加快傳輸的速度。ssh有很多功能,它既可以...
SSH 協議基礎
ssh的英文全稱為secure shell,是ietf internet engineering task force 的network working group所制定的一族協議,其目的是要在非安全網路上提供安全的遠端登入和其他安全網路服務。我們可以簡單理解為 rlogin和telnet等的替代方...