ssh原理和流程

2021-08-22 04:24:33 字數 1381 閱讀 3032

版本協商階段:

1 client -> server :請求鏈結

2 server -> client :ssh版本號

3 client 比較版本號,比自己高則用自己的版本號,比自己低則用server返回的版本號(確保協商的版本號雙方都能支援)

4 server收到版本號,確定是否繼續

會話,金鑰交換階段:

5 雙方傳送自己的演算法列表,計算最終使用的演算法

6 server 生成session_id,client 生成 金鑰

7 server傳送自己的公鑰給client

8 server傳送自己私鑰加密後的session_id給client

9 client現在儲存有server的公鑰和用公鑰解密的session_id

10 clinet用server的公鑰加密生成的金鑰

11 server收到金鑰,用自己的私鑰解密,現在雙發儲存了session_id和金鑰

12 接下來的資料傳輸採用金鑰加密解密,rsa用作大量的資料加密解密效能不足

密碼登入:

client 用金鑰加密自己的username和password

server收到資料用金鑰解密,認證使用者的許可權,成功登入或者拒絕接入

公鑰登入:

這裡的公鑰跟上面協商的公鑰不同,這裡的公鑰是任意一對私鑰公鑰(通常預先生成,將公鑰放到認證檔案中,將私鑰放到client的.ssh下)

client發起免密碼登入請求,用金鑰加密使用者和id_ras.pub

server解密資料到使用者目錄下的認證檔案中查詢id_ras.pub,存在則繼續認證

server傳送用金鑰和公鑰加密的質詢

client用金鑰和私鑰解密質詢,用金鑰加密質詢發給server

server校驗收到的質詢,相同認證通過

ps:1 協商階段的公鑰私鑰跟認證的公鑰私鑰不是同乙個

2 資料交流的金鑰是對稱加密

3 client 使用者目錄下哎可以有多個鑰匙對用於不同的認證,校驗的時候會自動判斷採用哪乙個鑰匙

centos:

yum install openssh-server -y #安裝ssh

service sshd start|stop|restart

/etc/ssh下的ssh_host*可以刪除,sshd啟動會重新生成

.ssh 下的金鑰對可刪除,自己生成#ssh-keygen -t rsa -p '' -f ***

/etc/ssh/sshd_config下有許多配置

是否允許root登入

是否允許無密碼登入

認證檔案

mac下超時自動斷開設定

debug:

ssh -i id_rsa [email protected] -vvv

SSH原理和運用

ssh是每一台linux電腦的標準配置。隨著linux裝置從電腦逐漸擴充套件到手機 外設和家用電器,ssh的使用範圍也越來越廣。不僅程式設計師離不開它,很多普通使用者也每天使用。雖然本文內容只涉及初級應用,較為簡單,但是需要讀者具備最基本的 shell知識 和了解 公鑰加密 的概念。如果你對它們不熟...

SSH原理和應用

注意 https與ssh不同,https的公鑰是經過證書中心公證的,必須從ca certificate authority 申請乙個用於證明伺服器用途型別的證書。使用場景 優點 缺點 socks socks 與其他型別的 不同,它只是簡單地傳遞資料報,而並不關心是何種應用協議,既可以是http請求,...

hadoop mapreduce原理和流程

參考 hadoop有不同版本之分,寫這篇文章的時候已經有版本3了,但是主要還是以版本二為主,1 2 的主要不同是在mapreduce部分 尤其是資源管理部分由原來的tasktracker jobtracker轉為了yarn,而計算部分沒變。另hdfs也沒怎麼變,作為乙個新手,試著記錄一下自己的理解吧...