Private Key(私密金鑰)
又稱:私鑰 · 私密金鑰 · private key · 金鑰對 · key pair
一對金鑰裡絕不能外流的那一半:它留在你的機器上,用來證明「我就是我」,對應的公鑰則可以公開給別人。
你會在什麼時候遇到它
SSH 免密碼登入、git 推送、簽署交易,靠的都是它。關鍵觀念是「私鑰永不出門」:要給別人、要上傳到伺服器的,永遠是對應的公鑰。一旦私鑰外流,別人就能完全冒充你,而且事後無法挽回。
打個比方
公鑰像一把掛在外面的鎖,誰都能拿它把東西鎖上寄給你;私鑰像只有你有的那把鑰匙,能打開那把鎖。你可以把鎖的照片貼滿全網,但鑰匙一旦被人複製,那些鎖就全部形同虛設。
最小範例
ssh-keygen -t ed25519 -C "you@example.com"
# 產生一對金鑰:
# ~/.ssh/id_ed25519 私鑰,留在本機、絕不外傳,權限要設 600
# ~/.ssh/id_ed25519.pub 公鑰,這個才可以貼到 GitHub/伺服器
cat ~/.ssh/id_ed25519.pub # 看公鑰(可公開)
# 千萬別 cat 私鑰再貼給別人或截圖記住副檔名:結尾是 .pub 的是公鑰(能公開),沒有 .pub 的那把是私鑰(絕不能給)。要把金鑰交給 GitHub 或遠端伺服器時,貼的永遠是 .pub 那把。私鑰權限太寬(例如 644),ssh 會直接拒絕使用它,而且錯誤訊息常常沒講清楚。
最常搞錯的地方
- 把私鑰貼給對方、上傳到網站、或提交進 git。要給的永遠是公鑰。私鑰一旦離開你的機器就視同洩漏,只能作廢整對金鑰重新產生,沒有「改個密碼」這種補救。
- 以為「私鑰加了密碼短語(passphrase)就可以隨便放」。密碼短語只是多一層保護,私鑰檔案本身仍絕不能外流;被人拿走檔案又猜到短語,就全盤皆輸。