跳到正文
馬克工具箱

SSH 金鑰產生器

在瀏覽器裡生成 SSH 金鑰對,可以直接用於伺服器登入、GitHub、GitLab 部署金鑰。支援 Ed25519、RSA 和 ECDSA,同時給出 OpenSSH 格式和 PEM 格式。金鑰由瀏覽器的 WebCrypto 在本地生成,不會發送到任何伺服器。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

短小、快速、安全。OpenSSH 6.5 以上、GitHub、GitLab 和絕大多數伺服器都支援。

使用步驟

  1. 選擇金鑰型別,一般選 Ed25519;需要相容很老的系統時選 RSA 4096。
  2. 可以填寫備註(例如電子郵件或電腦名),方便在伺服器上區分不同的金鑰。
  3. 點「生成金鑰對」。把公鑰新增到伺服器的 ~/.ssh/authorized_keys 或 GitHub 的 SSH keys 設定裡。
  4. 下載私鑰儲存到 ~/.ssh/ 目錄,並執行 chmod 600 設定權限。

引數說明

Ed25519
基於 Curve25519 的簽名演算法,公鑰只有 68 個字元,安全性相當於 RSA 3072 以上,速度快,是目前的首選。
RSA
相容性最好。2048 位是最低要求,OpenSSH 目前預設 3072 位,4096 位更保守但生成稍慢。
輸出格式
公鑰為 OpenSSH 單行格式;私鑰為 OpenSSH 格式(與 ssh-keygen 生成的 id_ed25519、id_rsa 相同),另附 PEM 格式(PKCS#8 私鑰、SPKI 公鑰)供其他程式使用。
指紋
SHA256 指紋,與 ssh-keygen -lf 和 GitHub 設定頁顯示的一致,可以用來核對金鑰。

新增到伺服器

# 把公鑰追加到伺服器上
echo "ssh-ed25519 AAAA... me@laptop" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 本地儲存私鑰後
chmod 600 ~/.ssh/id_ed25519
ssh -i ~/.ssh/id_ed25519 user@server

常見問題

在網頁上生成金鑰安全嗎?

金鑰由瀏覽器內建的 WebCrypto 介面生成,使用系統的安全隨機數,全過程在本地完成,頁面不會上傳任何內容,斷網也能用。對於特別敏感的用途,仍建議在自己的電腦上用 ssh-keygen 生成。

私鑰為什麼沒有密碼?

瀏覽器生成的是未加密私鑰。儲存後可以執行 ssh-keygen -p -f ~/.ssh/id_ed25519 為它設定密碼。

Windows 能用嗎?

可以。Windows 10/11 自帶 OpenSSH 客戶端,把私鑰儲存到 C:\Users\你的使用者名稱\.ssh\ 下即可。PuTTY 需要先用 PuTTYgen 把私鑰轉換成 .ppk 格式。

公鑰和私鑰怎麼對應?

執行 ssh-keygen -y -f 私鑰檔案,會輸出對應的公鑰,可以和頁面上的公鑰核對。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具