Ssh
簡單的 SSH 公鑰/私鑰問題
我正在嘗試學習這一點,而不僅僅是遵循指南,因此當人們提出要求(他們確實提出)時,我可以建議採取適當的行動。這是我下來的。
首先,使用如下命令生成兩個密鑰:
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
. 此時,您不再需要實際的密鑰文件。