ssh全稱是secure shell,ssh協議是基於應用層的協議,為遠端登入會話和其他網路服務提供安全性的協議。ssh使用最多的是遠端登入和傳輸檔案,實現此功能的傳統協議都不安全(ftp,telnet等),因為它們使用明文傳輸資料。而ssh在傳輸過程中的資料是加密的,安全性更高。
工作原理
ssh協議是基於非對稱加密方法的,伺服器和客戶端都會生成自己的公鑰和私鑰。
(1) 伺服器建立公鑰。若遠端伺服器是新系統,會在/etc/ssh目錄下生成乙個名為ssh_host_ecdsa_key.pub的公鑰,同時生成乙個名為ssh_host_ecdsa_key的私鑰,這一對就是遠端伺服器的公鑰與私鑰。之後每回啟動sshd服務的時候,系統會自動在此路徑下查詢公鑰。
遠端伺服器的公鑰:
(2) 客戶端請求連線。linux或者mac系統可以直接通過自帶的shell連線,指令為ssh user@host,如果客戶端和伺服器是相同的使用者,則可以省去user,直接使用ssh host。
(3) 伺服器傳送公鑰給客戶端。伺服器接到請求後,把公鑰傳給客戶端使用。
(4) 客戶端記錄伺服器公鑰並計算自己的公私鑰。客戶端將伺服器傳來的公鑰記錄在~/.ssh/known_hosts中,若是已經記錄有該伺服器公鑰,則比對是否一致,一致後就計算客戶端自己的公私鑰。
客戶端儲存的伺服器公鑰:
(5) 客戶端傳送自己的公鑰給伺服器。客戶端將自己的公鑰傳送給伺服器,這樣伺服器端就有客戶端公鑰+伺服器自己私鑰,客戶端就有伺服器公鑰+客戶端自己私鑰,組成了非對稱加密系統。
(6) 開始雙向加解密。伺服器傳送資料:用客戶端公鑰加密,客戶端收到資料後用自己私鑰解密。客戶端傳送資料:用伺服器公鑰加密,伺服器收到資料後用自己私鑰解密。
工作過程
(1) 版本號協商階段,ssh目前包括 ssh1和ssh2兩個版本, 雙方通過版本協商確定使用的版本
(2) 金鑰和演算法協商階段,ssh支援多種加密演算法, 雙方根據本端和對端支援的演算法,協商出最終使用的演算法
(3) 認證階段,ssh客戶端向伺服器端發起認證請求, 伺服器端對客戶端進行認證
(4) 會話請求階段, 認證通過後,客戶端向伺服器端傳送會話請求
(5) 互動會話階段 ,會話請求通過後,伺服器端和客戶端進行資訊的互動
認證方式
認證方式主要有兩種:密碼認證和公鑰認證。
密碼認證:輸入賬號密碼進行認證。
公鑰認證:需要客戶端生成一對公私鑰,使用ssh-keygen生成,儲存在~/.ssh路徑下,然後使用指令ssh-copy-id user@host傳到伺服器端,以後再登入認證的時候,客戶端自動傳送公鑰給伺服器,服務對比一致則通過認證,不要繁瑣地輸入密碼了。
客戶端生成的登入公鑰:
伺服器端接收的客戶端登入公鑰:
這一篇文章主要記錄ssh協議的工作原理及過程,接下來還會寫一篇ssh協議涉及的安全威脅及解決辦法。
DHCP(動態主機配置協議)工作原理及過程
dhcp協議採用udp作為傳輸協議,客戶端主機傳送請求訊息到dhcp伺服器的67號埠,dhcp伺服器回應應答訊息給客戶端主機的68號埠。詳細的互動過程如下圖 於網路 1 客戶端 利用廣播資料報傳送搜尋dhcp伺服器 若客戶端網路設定使用dhcp協議取得ip,則當客戶端開機或者是重新啟動網絡卡時,客戶...
FTP協議工作原理及總結
1.ftp協議 什麼是ftp呢?ftp 是 tcp ip 協議組中的協議之一,是英文file transfer protocol的縮寫。2.ftp使用者授權 1 使用者授權 要連上 ftp 伺服器 即 登陸 必須要有該 ftp 伺服器授權的帳號,也就是說你只有在有了乙個使用者標識和乙個口令後才能登陸...
RIP路由協議及工作原理
rip routing information protocol,路由資訊協議 是應用較早 使用較普遍的內部閘道器協議 interior gateway protocol,igp 適用於小型同類網路的乙個自治系統 as 內的路由資訊的傳遞。rip協議是基於距離向量演算法 distance vecto...