
所以我想知道,如何才能在我的 dotfiles GitHub 儲存庫中擁有這個檔案?
我厭倦了每次在新電腦上或重新安裝作業系統等時都必須產生新的 SSH 金鑰。
那麼最好的方法是什麼呢?我想在密鑰產生時為文件分配密碼就足夠了嗎?這應該對其進行加密或使其在沒有它的情況下無法使用。這夠好嗎?
如果沒有,有沒有辦法加密該文件,以便我可以放心地將其上傳到互聯網,但可以隨時使用正確的密碼使用它?
答案1
id_rsa.pub
是公鑰,根本不需要保護。事實上它需要為了工作而發表。我假設您實際上在這個問題中談論id_rsa
(私鑰)。
當然,您不必每次使用新電腦或重新安裝作業系統時都會產生新的 SSH 金鑰。您可以將該檔案從一台電腦複製到另一台電腦。或者,如果您暫時在另一台計算機上不想儲存金鑰,則可以遠端登入儲存金鑰的計算機,ssh -A
並使用 載入金鑰到本機代理程式中ssh-add
。 (只有當您信任臨時使用的電腦上的 root 權限時,才應該執行此操作。)
您的SSH 密鑰還應該已經有一個密碼(如果沒有,請立即添加一個密碼,或者更好的是,考慮該密鑰已洩露並替換它!),否則任何人只要短暫訪問該密鑰所在的電腦即可已儲存將有權存取它。
如果將檔案從一台電腦手動複製到另一台電腦對您來說不方便,您可以將 SSH 金鑰儲存在雲端(github 或其他)。就我個人而言,我寧願不這樣做。
我假設您打算為此目的使用私人 github 儲存庫。儘管帶有密碼的 SSH 金鑰對於沒有密碼的任何人來說都是無用的,但您仍然應該保留加密的金鑰,以防有人獲得您的密碼。
編輯: 更多分享id_rsa
儘管id_rsa
對於任何不擁有相應密碼的人來說都無法使用,但您仍然不應該共享它。
SSH 金鑰可以被認為有點像是雙重認證的一種形式。該id_rsa
文件是你擁有的東西。密碼是「你知道的事」。只有組合在一起才有用。我說「有點像」是因為您實際上並不id_rsa
像使用真正的兩因素身份驗證系統的「Something You Have」元件那樣隨身攜帶該文件。
不共享id_rsa
文件可以提供一些保護,以防您的密碼洩露給其他人。如果發生這種情況,您絕對應該撤銷密鑰,但至少攻擊者如果無法獲取id_rsa
.