SSH 金鑰套件
SSH 金鑰驗證用一對數學上關聯的金鑰代替密碼:私鑰永遠不離開你的電腦,公鑰安裝在你登入的每一台伺服器上。伺服器向你的電腦發出挑戰,要求它證明自己持有私鑰,而證明過程無需祕密經過網路。本頁產生 OpenSSH 格式的 Ed25519、ECDSA 與 RSA 金鑰,稽核你的 authorized_keys 與 known_hosts 檔案,找出弱金鑰、重複金鑰與過期金鑰,並在 PEM、OpenSSH 與 JWK 格式之間轉換金鑰——全部在瀏覽器中完成,不上傳任何內容。配套指南SSH 金鑰詳解講解如何選擇金鑰類型,以及金鑰外洩時該做什麼。還可以搭配密碼外洩檢查檢查你仍在用的密碼,以及憑證金鑰比對器與PGP 套件處理其餘金鑰材料。
最後更新:
你的私鑰永遠不會離開本頁
所有金鑰都在瀏覽器中產生、解析與轉換。私鑰永遠不會被上傳、儲存或記錄,也不會出現在 URL 中。下載一次,用 chmod 600 保護它,需要密碼時用 ssh-keygen -p 新增。完整指南見SSH 金鑰詳解。
產生新的 SSH 金鑰對
結果
檢查與稽核金鑰
貼上 <code>~/.ssh/authorized_keys</code> 或 <code>~/.ssh/known_hosts</code> 的內容,或單行公鑰。經過雜湊處理的 <code>known_hosts</code> 項目會標為已雜湊,絕不會悄悄跳過。受密碼保護的私鑰無法在這裡解析——那是一個明確的錯誤,而不是虛假的結果。
包含金鑰的文字檔案,每行一個。無法解析的行會列為未解析,絕不會悄悄丟掉。檔案僅在本裝置上讀取,永遠不會被上傳。
或把檔案拖到此框的任意位置。限制:2 MB。
結果
轉換金鑰
在 OpenSSH、PEM 與 JWK 之間轉換公鑰,或在 OpenSSH 與 PKCS#8 PEM 之間轉換未加密私鑰。每次轉換都會顯示轉換前後的指紋,方便你確認是同一把金鑰。第 1 版不支援受密碼保護的金鑰。
結果
誠實的限制
第 1 版產生的是未加密金鑰:這裡沒有密碼選項,因為 OpenSSH 加密私鑰的 bcrypt KDF 屬於第 2 版的範圍。請用 chmod 600 保護下載的檔案,需要密碼時用 ssh-keygen -p 新增。
Ed25519 產生需要較新的瀏覽器。如果你的瀏覽器不支援,本頁會明確告訴你,並提供 ECDSA P-256 作為替代——絕不會偽造 Ed25519 金鑰,也不會悄悄降級。
永遠不要把私鑰貼進聊天、工單、論壇貼文或共享文件——哪怕是問它是否安全。私鑰一旦出現在任何這類地方,就必須當作已經外洩:換掉它,並從每一個 authorized_keys 檔案中刪除舊公鑰。
什麼是 SSH 金鑰驗證——以及它為什麼勝過密碼
SSH 金鑰驗證用數學證明代替輸入的祕密。用金鑰登入伺服器時,伺服器向你的電腦傳送一個隨機挑戰;你的電腦用私鑰對它簽章,伺服器再用 authorized_keys 中的公鑰驗證簽章。私鑰從不經過網路,因此鍵盤記錄器無物可偷,釣魚無物可釣,暴力破解也無從下手——攻擊者無法像破解密碼那樣破解 256 位元的 Ed25519 金鑰,因為根本沒有密碼可以嘗試。
金鑰的兩半遵循相反的規則。公鑰就是用來到處複製的:貼進每一台伺服器的 authorized_keys、Git 託管帳戶、任何接受它的服務。它只能讓對方驗證證明,公布它沒有任何代價。私鑰則恰恰相反:持有它的人就能以你的身分登入每一台信任對應公鑰的伺服器。這就是為什麼它住在 ~/.ssh 裡,只有你能讀取,也是為什麼它絕不能貼進聊天、工單、電子郵件或共享文件——一旦出現在任何這類地方,它就是外洩了,唯一的修復辦法是在所有地方換掉它。
選擇金鑰、核對指紋、保持檔案整潔
2026 年的預設選擇是 Ed25519:256 位元金鑰,產生與簽章都比 RSA 更快,公鑰只有短短一行。當政策或舊系統堅持要求 NIST 曲線時,ECDSA P-256 是替代選擇;只有當對方完全無法使用橢圓曲線時,才輪到 RSA 3072 或 4096——RSA 2048 是下限,更小的金鑰會被本頁標記為弱金鑰。金鑰類型的重要性不如圍繞它的使用習慣:一個放在全世界可讀的檔案裡、或複製到你已不再擁有的筆記型電腦上的強金鑰,比一個保管得當的普通金鑰更糟糕。
指紋的作用是讓你確認自己在和正確的機器對話。第一次連線伺服器時,SSH 會顯示伺服器主機金鑰的指紋並請你確認;這個指紋是伺服器公鑰的雜湊,如果與管理員公布的一致,就沒有中間人坐在中間。保存它,之後一旦變化,SSH 會大聲警告你。同樣的指紋也標識你自己的金鑰:ssh-keygen -lf 為每個金鑰印出一行,而本頁印出的指紋格式與它完全一致,因此這裡看到的值可以與伺服器上的值逐字比對。
這些檔案值得定期稽核,因為金鑰只會越積越多。authorized_keys 的每一行都是一扇通往伺服器的門,而這些門會在需要它的人離開很久之後依然開著:外包人員的筆記型電腦、某個 CI 任務、在已被抹除的機器上產生的金鑰。把檔案貼進「檢查」分頁,本頁會統計金鑰數量,標記重複項目,標出弱金鑰與舊類型,並把無法解析的行列出來,而不是悄悄丟掉。known_hosts 也一樣,其中的雜湊項目隱藏了主機名稱——本頁會把它們報告為已雜湊,而不是假裝可讀。每隔幾個月花十分鐘稽核一次,是伺服器主人做過的最划算的安全工作。
用通俗的話說明這個套件
| Ed25519 | 現代橢圓曲線金鑰:256 位元,速度快,體積小。2026 年新金鑰的建議預設選擇,所有目前的 SSH 伺服器與用戶端都支援。 |
| ECDSA P-256 / P-384 | 基於 NIST P-256 與 P-384 曲線的橢圓曲線金鑰。當 Ed25519 不可用時是很好的替代,也是政策要求 NIST 曲線時的標準選擇。 |
| RSA 2048 / 3072 / 4096 | 經典金鑰類型。RSA 2048 是值得使用的下限;3072 與 4096 以更慢的簽章換取更大的安全餘裕。低於 2048 的會被標記為弱金鑰。 |
| 公鑰 | 安裝在伺服器 authorized_keys 中的一半,可以自由分享——它只能讓對方驗證證明,永遠無法偽造證明。 |
| 私鑰 | 永遠不離開你電腦的一半。持有它的人就能以你的身分登入。用 chmod 600 與密碼保護它,永遠不要把它貼到任何地方。 |
| 指紋 | 公鑰的短雜湊,顯示為 SHA256:… 或 MD5:…,與 ssh-keygen -lf 的輸出完全一致,方便你與伺服器上顯示的值逐字比對。 |
| authorized_keys | 伺服器上的檔案(~/.ssh/authorized_keys),列出允許登入的公鑰。每一行都是一扇門;過期的行是你忘記關上的門。 |
| known_hosts | 你電腦上的檔案(~/.ssh/known_hosts),記錄每台伺服器的主機金鑰。正是它讓 SSH 能在伺服器金鑰突然變化時向你發出警告。 |
| PEM / JWK | 另外兩種金鑰編碼:PEM 是 TLS 工具與 OpenSSL 使用的 base64 文字格式;JWK 是 Web API 使用的 JSON 格式。轉換永遠不會改變金鑰本身。 |
常見問題
我該選擇哪種金鑰類型?
幾乎所有情況都選 Ed25519:256 位元,速度快,體積小,安全性高,所有目前的伺服器都支援。只有當政策或舊系統要求 NIST 曲線時才選 ECDSA P-256;只有當對方完全不支援橢圓曲線時才選 RSA 3072 或 4096。
產生的私鑰是加密的嗎?
不是。第 1 版產生的私鑰未加密,cipher 為 none,與不帶密碼的 ssh-keygen 完全一樣。下載後設定 chmod 600;想要密碼時,在自己的電腦上執行 ssh-keygen -p -f 你的金鑰——它會加上 OpenSSH 的 bcrypt 保護。
為什麼 Ed25519 在我的瀏覽器裡失敗?
Ed25519 金鑰產生需要瀏覽器支援 WebCrypto Ed25519,舊瀏覽器沒有這個能力。本頁會偵測並明確告訴你,而不是偽造金鑰。請用 ECDSA P-256 作為替代,或升級瀏覽器後重試。
我可以把私鑰貼到這裡檢查嗎?
可以貼上未加密的 OpenSSH 私鑰,本頁會在本地解析它的公開部分——但請三思。更安全的做法是只貼上公鑰與 authorized_keys 檔案。受密碼保護的私鑰會被明確拒絕,絕不會被解析。
金鑰外洩了怎麼辦?
產生一對新金鑰,從每一台伺服器與服務的 authorized_keys 中刪除舊公鑰,並把舊金鑰能觸及的一切都當作已經暴露,直到你逐一檢查過。完整清單見指南《SSH 金鑰詳解》。