SSH加密原理


1、SSH初次交換公鑰

  • 客戶端發起鏈接請求
  • 服務端返回自己的公鑰,以及一個會話ID(這一步客戶端得到服務端公鑰)
  • 客戶端生成密鑰對
  • 客戶端用自己的公鑰異或會話ID,計算出一個值Res,並用服務端的公鑰加密
  • 客戶端發送加密后的值到服務端,服務端用私鑰解密,得到Res
  • 服務端用解密后的值Res異或會話ID,計算出客戶端的公鑰(這一步服務端得到客戶端公鑰)
  • 最終:雙方各自持有三個秘鑰,分別為自己的一對公、私鑰,以及對方的公鑰,之后的所有通訊都會被加密

2、SSH加密原理

3、SSH服務登錄的常用驗證方式

  • 用戶/口令
  • 基於密鑰

基於用戶和口令登錄驗證

  1. 客戶端發起ssh請求,服務器會把自己的公鑰發送給用戶
  2. 用戶會根據服務器發來的公鑰對密碼進行加密
  3. 加密后的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功

基於密鑰的登錄方式

  1. 首先在客戶端生成一對密鑰(ssh-keygen)
  2. 並將客戶端的公鑰ssh-copy-id 拷貝到服務端
  3. 當客戶端再次發送一個連接請求,包括ip、用戶名
  4. 服務端得到客戶端的請求后,會到authorized_keys中查找,如果有響應的IP和用戶,就會隨機生
    成一個字符串,例如:magedu
  5. 服務端將使用客戶端拷貝過來的公鑰進行加密,然后發送給客戶端
  6. 得到服務端發來的消息后,客戶端會使用私鑰進行解密,然后將解密后的字符串發送給服務端
  7. 服務端接受到客戶端發來的字符串后,跟之前的字符串進行對比,如果一致,就允許免密碼登錄

分兩步實現:

1、現在client端生成自己的密鑰對(公私鑰)

2、把客戶端公鑰手動添加到服務端

ssh_client#ssh-keygen

默認路徑在/root/.ssh/id_rsa 默認是rsa加密方式

提示你是否添加密碼。

ssh_client#ssh-copy-d -i ./ssh/id_rsa.pub 10.0.0.7 //上傳到服務端
image-20211209023341169


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM