免密登入原理

2022-07-07 20:30:11 字數 1472 閱讀 3802

簡談免密登入原理

早期的網際網路通訊,例如telnet和非安全shell,都是採用明文進行傳輸,一旦被截獲,內容就會暴露無遺。而ssh就是其上位的替代品。2023年,芬蘭學者tatu ylonen設計了ssh協議,將登入資訊全部加密,成為了網際網路安全的乙個基本解決方案,迅速在全世界獲得推廣。

ssh加密資訊:

secure shell(安全外殼協議,簡稱ssh)是一種加密的網路傳輸協議,可在不安全的網路中為網路服務提供安全的傳輸環境。根據其定義,我們能夠理解ssh最常見的用途就是遠端登入系統,人們通常利用ssh來傳輸命令列介面和遠端執行命令。ssh通過在網路中建立安全隧道來實現ssh客戶端與伺服器之間的連線。

ssh的工作原理

作為以安全性著稱的協議,ssh是怎麼實現的呢?我們首先想到的肯定是對資料進行加密,而ssh的加密方式主要有兩種,乙個是對稱加密(金鑰加密),另乙個是非對稱加密(公鑰加密)。

對稱加密:所謂的對稱加密就是客戶端與伺服器共用一套金鑰進行資料的加解密,這樣在傳輸時是安全可靠的,但是如何安全的儲存金鑰呢,在集群中,客戶端的數量巨大,一旦任意乙個客戶端的金鑰被竊取,那麼整個系統的安全性也不復存在。為了解決這個問題,非對稱加密應運而生。

非對稱加密:非對稱加密中有兩個金鑰:公鑰和私鑰。公鑰由私鑰產生,但卻無法推算出私鑰;資料使用公鑰加密之後,只能使用私鑰進行解密,而私鑰被破解的概率很低很低,在非對稱加密中,由於只有公鑰會被傳輸,而私鑰是服務端本地儲存,因此即便公鑰被監聽,也無法拿到原始密碼,從而登入伺服器。

ssh免密登入:

免密登入構建過程——

client端生成公鑰與私鑰。

client將公鑰傳送給server,攜帶者client的使用者資訊。

server接收到client傳送的資料後,建立乙個map,使用使用者資訊作為key,公鑰作為value,將client傳送的資料寫入到map。

免密登入驗證過程——

client提交訪問請求,其中攜帶著使用者資訊。

server接收到client請求後,解析出使用者資訊。根據使用者資訊,從map中查詢是否具有該key。若沒有,則直接拒絕訪問。若存在,則獲取到該client所對應的公鑰。

server端生成乙個隨即字串,先將這個字串保留乙份,然後再使用公鑰對該字串進行加密。

server將加密後的字串傳送給client。

(client接收到server傳送的加密後的字串,使用私鑰對其進行解密)client將解密後的字串傳送給server。

server接收到client解密後的字串,然後再與自己曾保留的未加密的字串進行對比。若相同,則允許訪問;若不同,則拒絕訪問。

ssh提供一種免密登入的方式:公鑰登入。

實現免密登入:ssh-keygen是生成金鑰的工具,執行完成後生成公鑰和金鑰,這兩個檔案會預設儲存在~/.ssh/路徑下。我們直接執行來生成金鑰,所有的引數都可以為空,也就是一直回車確認。

ssh登入原理及免密登入

之前這篇部落格 將linux裝置設定為伺服器 是讓windows訪問server的。現在想用linux主機訪問另一台linux主機,實現免密登入,其登入原理如下 按原理走就行了 事先在兩台機器的 etc hosts檔案中新增ip 1.client generate a pair of keys ss...

ssh 免密登入及其原理

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

ssh免密登入原理與實現

公鑰和私鑰都屬於非對稱加密演算法的乙個實現,這個加密演算法的資訊交換過程是 持有公鑰的一方 a 在收到持有私鑰的一方 b 的請求時,甲會在自己的公鑰列表中查詢是否有乙的公鑰,如果有則使用乙個隨機字串使用公鑰加密並傳送給乙。乙收到加密的字串使用自己的私鑰進行解密,並將解密後的字串傳送給甲。甲接收到乙傳...