Ssh

簡單的 SSH 公鑰/私鑰問題

  • December 23, 2010

我正在嘗試學習這一點,而不僅僅是遵循指南,因此當人們提出要求(他們確實提出)時,我可以建議採取適當的行動。這是我下來的。

首先,使用如下命令生成兩個密鑰:

ssh-keygen -b 2048 -t rsa -C comment -f ~/.ssh/id_rsa

然後將密鑰的公共部分推送到 authorized_keys2 文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys2

(然後將其 chmod 為 600 或類似)

然後您將私鑰下載到您的電腦 (id_rsa) 並將其提供給 Putty 以供讀取和驗證。

這些是設置此公鑰/私鑰身份驗證以無密碼登錄到 SSH 的正確步驟嗎?

雖然您描述的步驟將起作用,但存在一個問題。您正在目標(遠端)電腦上生成密鑰對,然後將私鑰文件下載到本地系統。這裡有一些你不應該忽視的安全隱患:

  • 如果遙控器已經被盜用,可能有人剛剛竊取了您的密碼。
  • 如果將來遠端系統受到威脅,攻擊者將可以訪問您的私鑰文件(以及使用離線暴力攻擊嘗試解密它的奢侈)。

由於您使用 ssh 密鑰對來(嘗試)解決密碼身份驗證中固有的一些問題,因此您通常希望這樣做:

  • 在本地系統上生成密鑰對。理想情況下,私鑰將 (a) 永遠不會儲存在共享文件系統(例如 NFS 主目錄)上,並且 (b) 永遠不會儲存在允許遠端登錄的電腦上。
  • 廣泛地發佈公鑰。我將我的公鑰保存在一個網站上,以便我可以在需要時獲取它們。將公鑰放在authorized_keys您將要連接的系統上的適當文件中。

如果您特別偏執,您可以將您的私鑰儲存在拇指驅動器上,並且僅使用該驅動器將密鑰載入到正在執行的ssh-agent. 此時,您不再需要實際的密鑰文件。

引用自:https://serverfault.com/questions/215546