遠程登錄Linux除了可以使用用戶名密碼認證外,我們還可以通過密鑰對認證。也許你對如何配置密鑰認證非常熟悉,但你是否了解這個密鑰對如何工作呢?
先來看一幅圖

對于準備階段,大家并不陌生,就是將客戶端上的預(yù)先生成的公鑰放到服務(wù)端上去。
關(guān)于這個密鑰對,我啰嗦兩句。其中公鑰用來加密,私鑰用來解密,只有和公鑰配對的私鑰才能解開其公鑰加密的字符串。它們屬于非對稱加密。
說到加密,我不得不提一下,加密的方式主要有兩種:
對稱加密(也稱為秘鑰加密)
非對稱加密(也稱公鑰加密)
所謂對稱加密,指加密解密使用同一套密鑰。如下圖所示:
Client:

Server:

對稱加密的加密強度高,很難破解。但是在實際應(yīng)用過程中不得不面臨一個棘手的問題:如何安全地保存密鑰呢?尤其是考慮到數(shù)量龐大的Client端,很難保證密鑰不被泄露。一旦一個Client端的密鑰被竊取,那么整個系統(tǒng)的安全性也就不復(fù)存在。為了解決這個問題,非對稱加密應(yīng)運而生。非對稱加密有兩個密鑰:公鑰和私鑰。
再來看看公鑰、私鑰的協(xié)商交互過程:
① 如果SSH服務(wù)端開啟了密鑰認證,那么當客戶端向目標服務(wù)器發(fā)送登錄請求時,服務(wù)端會優(yōu)先通過密鑰驗證方式進行登錄驗證。
② SSH服務(wù)端會讀取~/.ss/authorized_keys里所有的公鑰信息,這里需要注意,公鑰存取的文件路徑是可以在SSH服務(wù)配置文件里進行配置的。
③ SSH服務(wù)端會生成一串隨機數(shù),然后使用相應(yīng)的公鑰對其加密。
④ SSH服務(wù)端將加密后的密文發(fā)給客戶端。
⑤ 客戶端使用私鑰解密,私鑰存儲路徑通常為~/.ssh/id_rsa,當然也可以使用-i選項指定,或者在SSH客戶端軟件(如Xshell或者Mobaxterm)里配置。

⑥ 客戶端如果解密成功,則會把解密后的隨機字符發(fā)送給服務(wù)端。如果解密失敗,則會繼續(xù)嘗試密碼驗證等其它方式進行登錄校驗。
⑦ 服務(wù)端對客戶端返回的隨機字符串進行比對。
⑧ 如果比對成功,則認證成功,客戶端順利登錄。否則,會反饋登錄失敗。
審核編輯:湯梓紅
-
Linux
+關(guān)注
關(guān)注
88文章
11793瀏覽量
219387 -
密鑰
+關(guān)注
關(guān)注
1文章
148瀏覽量
20991 -
公鑰
+關(guān)注
關(guān)注
0文章
22瀏覽量
12270 -
SSH
+關(guān)注
關(guān)注
0文章
200瀏覽量
17788 -
服務(wù)端
+關(guān)注
關(guān)注
0文章
69瀏覽量
7386
原文標題:你知道SSH密鑰認證是如何工作的嗎
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
消息認證碼指的是什么?消息認證碼為什么要帶密鑰呢
在GitHub帳戶上使用新的(或現(xiàn)有的)SSH密鑰
【觸覺智能 Purple Pi OH 開發(fā)板體驗】無網(wǎng)絡(luò)狀態(tài)連接ssh解決辦法
新的口令認證密鑰協(xié)商協(xié)議
利用SSH的密鑰對建立安全通道
標準模型下增強的基于身份的認證密鑰協(xié)商協(xié)議
標準模型下高效的基于口令認證密鑰協(xié)商協(xié)議
SSH定義及應(yīng)用
快速分析文本工具用SSH最合適
在Linux上如何配置基于密鑰認證的SSH?
如何使用無密碼SSH密鑰登錄遠程Linux服務(wù)器
輕量服務(wù)器怎么搭建ssh?
SSH端口號是什么?SSH是如何工作的?
你知道SSH密鑰認證是如何工作的嗎
評論