跳到正文
段澤浩

公鑰

這些是我的公鑰。你可以用它們向我傳送只有我能讀到的內容,核實某個檔案確實出自我手,或者讓我不用密碼就能登入某台伺服器。

公鑰本來就是用來公開的。它只能用來加密訊息和驗證簽名,不能解密,也不能簽名;解密和簽名要用與它配對的私鑰,而私鑰從不離開我的裝置。如果你並不了解這些,本頁內容無需理會,照常發電郵就好。

PGP 公鑰

用於加密電郵和檔案,以及驗證我的簽名。適用於 GnuPG、Thunderbird 等支援 OpenPGP 的軟件。

指紋
3820 3A1C 91D7 EED4 CA65 8D3C F14B A896 331B 9793
用戶 ID
Zehao Duan (Main PGP Key) <zehao.duan@gmail.com>
類型
Ed25519(簽名),附 Cv25519 子密鑰(加密)
有效期
建立於 ,有效期至
pgp.asc
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEaqugRBYJKwYBBAHaRw8BAQdAuv1fwBS5K3iK5hDA7C7+SrG9fDWKXarFO6NX
GULBtzy0MFplaGFvIER1YW4gKE1haW4gUEdQIEtleSkgPHplaGFvLmR1YW5AZ21h
aWwuY29tPoi1BBMWCgBdFiEEOCA6HJHX7tTKZY088UuoljMbl5MFAmqroEQbFIAA
AAAABAAObWFudTIsMi41KzEuMTIsMCwzAhsDBQkJZgGABQsJCAcCAiICBhUKCQgL
AgQWAgMBAh4HAheAAAoJEPFLqJYzG5eT4rcA/iJ4tOACKQWsHBNp0nLONx3YgABK
HECL3S3kdXqAF+hnAP40eeA19X8pSnWt1F00VgjhBM01HsULTh5Ui/YkqVxuDbg4
BGqroEQSCisGAQQBl1UBBQEBB0CtQEIYOBbkWQJXzQWSKCTCWbkV8PckROmpdrQ3
5+4yUQMBCAeImgQYFgoAQhYhBDggOhyR1+7UymWNPPFLqJYzG5eTBQJqq6BEGxSA
AAAAAAQADm1hbnUyLDIuNSsxLjEyLDAsMwIbDAUJCWYBgAAKCRDxS6iWMxuXkwKp
AP9ZS2z6sfhrDzjCGC1G7RlNKact4UVU55xbmOG+LcixRAD+PLujxvdimcR6DP0V
5MtTIaY+YtyD71MSnaCpRCfLsQU=
=OafD
-----END PGP PUBLIC KEY BLOCK-----

使用方法

  1. 下載公鑰。

    curl -O https://zehao-duan.com/public-key/pgp.asc
  2. 匯入之前先核對。輸出中 pub 下面一行的指紋必須與本頁所示逐個字元一致。較新版本的 GnuPG 還會在 sub 下面顯示第二個指紋,那是加密子密鑰的指紋,無需比對。

    gpg --show-keys --with-fingerprint pgp.asc
  3. 匯入。

    gpg --import pgp.asc
  4. 加密一個檔案,使它只有我能解密。GnuPG 會要求你確認,因為它還沒有證據顯示這把密鑰屬於我;下文的指紋核對就是這份證據。

    gpg --encrypt --armor --recipient 38203A1C91D7EED4CA658D3CF14BA896331B9793 message.txt
  5. 驗證我的簽名。輸出中應出現「Good signature」(繁體中文介面顯示為「完好的簽章」)和同一個指紋。GnuPG 還會顯示一則警告,指這把密鑰未經受信任的簽名認證(「This key is not certified with a trusted signature!」);原因與第 4 步相同,並不表示驗證失敗。

    gpg --verify paper.pdf.sig paper.pdf

SSH 公鑰

用於免密碼登入伺服器和 Git 託管平台。如果你管理的機器需要給我存取權限,加上這一行即可。

指紋
SHA256:0JAhpUGbGd5G8ceQYFQ7GsxRzSfjT3ZLuZeCwFm3pFQ
類型
Ed25519,256 位元
ssh.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEwq4pJRYWFnVm255U6ATNWKrbZIdr8+zPmz0nyAA3JU zehao.duan@gmail.com

使用方法

  1. 下載公鑰。

    curl -O https://zehao-duan.com/public-key/ssh.pub
  2. 核對。指令輸出的指紋必須與本頁所示逐個字元一致。

    ssh-keygen -lf ssh.pub
  3. 授權:把這一行附加到我要使用的那個帳戶的 ~/.ssh/authorized_keys。此後,持有對應私鑰的人就能登入該帳戶,所以只應加在確實要給我存取權限的地方。如果該帳戶還沒有 ~/.ssh,請先用 mkdir -m 700 ~/.ssh 建立,並把 authorized_keys 的權限保持為 600:只要其他使用者可以寫入,sshd 就會忽略這個檔案。

    cat ssh.pub >> ~/.ssh/authorized_keys

信任這些公鑰之前

  1. 確認網址。 網址列應顯示 https://zehao-duan.com,而且沒有證書警告。不要採用電郵附件、聊天訊息或自稱是我的連結裏給出的「我的公鑰」。
  2. 完整比對指紋。 逐個字元核對,不要只看開頭和結尾幾位。偽造一把指紋首尾相同的密鑰,成本很低。
  3. 要緊的場合,請換一個渠道確認。 本頁和密鑰檔案來自同一台伺服器,所以這裏顯示的指紋只能證明二者彼此一致。涉及敏感內容時,請讓我當面唸出指紋,或者在你能認出我的聲音或相貌的通話中唸出;聯絡我時請用你原本就信任的聯絡方式,而不是待核實的訊息裏給出的聯絡方式。
  4. 公鑰不是秘密。 任何人都可以持有它。單憑公鑰,既不能解密或簽名,也不能登入任何系統。永遠不要把私鑰傳給任何人;我也絕不會向你索取私鑰。
  5. 密鑰會更換。 如果我沒有延長有效期,這把 PGP 密鑰將於 2031-09-16 到期。如果本頁顯示的密鑰與你手上的不同,在向我確認之前,請把新密鑰視為未經驗證。
  6. 加密隱藏的是內容,不是一切。 用 PGP 加密的電郵仍然會顯示寄件人、收件人和時間;在不少郵件軟件裏,主旨也不會被加密,所以主旨請寫得平淡些。

返回主頁