id_rsa 與 id_rsa.pub 文件詳解


SSH

在正式說 id_rsa.pub,之前有必要先說說 SSH。

SSH 為 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 為建立在應用層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。

利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。SSH最初是UNIX系統上的一個程序,后來又迅速擴展到其他操作平台。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平台。

一般我們都會使用到兩種方式去登陸 SSH,密碼登陸和證書登陸。初學者都喜歡用密碼登錄,甚至是 root 賬戶登錄,密碼是 123456,這樣很容易遭受惡意攻擊,所以在實際的工作中和大多數的互聯網公司,都是會使用證書去登陸的。


證書登錄的步驟

(1)客戶端生成證書:私鑰和公鑰,然后私鑰放在客戶端,妥當保存,一般為了安全,訪問有黑客拷貝客戶端的私鑰,客戶端在生成私鑰時,會設置一個密碼,以后每次登錄 ssh 服務器時,客戶端都要輸入密碼解開私鑰(如果工作中,你使用了一個沒有密碼的私鑰,有一天服務器被黑了,你是跳到黃河都洗不清)。

(2)服務器添加信用公鑰:把客戶端生成的公鑰,上傳到 ssh 服務器,添加到指定的文件中,這樣,就完成 ssh 證書登錄的配置了。

假設客戶端想通過私鑰要登錄其他 ssh 服務器,同理,可以把公鑰上傳到其他 ssh 服務器。

真實的工作中:員工生成好私鑰和公鑰(千萬要記得設置私鑰密碼),然后把公鑰發給運維人員,運維人員會登記你的公鑰,為你開通一台或者多台服務器的權限,然后員工就可以通過一個私鑰,登錄他有權限的服務器做系統維護等工作,所以,員工是有責任保護他的私鑰的,如果被別人惡意拷貝,你又沒有設置私鑰密碼,那么,服務器就全完了,員工也可以放長假了。


客戶端建立私鑰和公鑰

如果是 Linux,則在客戶端終端運行以下命令,如果是 Windows,則可以用 Git Bash(默認安裝了 SSH) 終端運行以下命令:

ssh-keygen -t rsa

rsa 是一種密碼算法,還有一種是 dsa,證書登錄常用的是 rsa。

假設用戶是 blue,執行 ssh-keygen 時,才會在 .ssh/ 這個目錄里面產生所需要的兩把 Keys ,分別是私鑰 (id_rsa) 與公鑰 (id_rsa.pub)

注:Linux 是在 home/.ssh/ 目錄下,而 Windows 是在 C:\Users\Feng\.ssh 目錄下。


擴展:authorized_keys

就是為了讓兩個 Linux 機器之間使用 ssh 不需要用戶名和密碼。采用了數字簽名 RSA 或者 DSA 來完成這個操作。

模型分析

假設 A (192.168.20.59)為客戶機器,B(192.168.20.60)為目標機;

要達到的目的:

  • A 機器 ssh 登錄 B 機器無需輸入密碼;
  • 加密方式選 rsa|dsa 均可以,默認 dsa。

單向登陸的操作過程(能滿足上邊的目的):

  1. 登錄 A 機器
  2. ssh-keygen -t [rsa|dsa],將會生成密鑰文件和私鑰文件 id_rsa、id_rsa.pub 或 id_dsa、id_dsa.pub
  3. 將 .pub 文件復制到B機器的 .ssh 目錄, 並cat id_dsa.pub >> ~/.ssh/authorized_keys
  4. 大功告成,從 A 機器登錄 B 機器的目標賬戶,不再需要密碼了;(直接運行#ssh 192.168.20.60

雙向登陸的操作過程:

  1. ssh-keygen 做密碼驗證可以使在向對方機器上 ssh,scp 不用使用密碼。
  2. 兩個節點都執行操作:#ssh-keygen -t rsa,然后全部回車,采用默認值。
  3. 這樣生成了一對密鑰,存放在用戶目錄的 ~/.ssh 下。

將公鑰考到對方機器的用戶目錄下,並將其復制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。


參考:

id_rsa id_pub 公鑰與私鑰

每日掃盲(三):id_rsa、id_rsa.pub 、authorized_keys



免責聲明!

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



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