Featured image of post GPG with SSH

GPG with SSH

GPG with SSH

接續前一篇 gpg 的文章

指紋 Fingerprint

根據 GNOME help 的說明,不同金鑰的指紋必然不同,因此如果要驗證、查詢的話,與其用其他參數,不如用指紋,例如我的 GPG key 指紋是 6236 A070 8FCD 894C 7AD1 A5FC DB13 A5C2 042E AEA4,看到這串就代表是我。

Grip

根據 gnupg 的這封郵件,grip 似乎是金鑰參數的 SHA-1 hash,看不太懂哪些參數會被納入計算。

ssh authorize with gpg

以下步驟來自下面三個參考網址

  1. 根據第二個參考資料的說明產生可以用於 ssh 驗證的 gpg subkey(有[A]
  2. 取得 ssh 格式的公鑰 gpg2 --export-ssh-key [email protected]
  3. 取得要用於驗證的 subkey 的 keygrip
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ gpg2 --list-keys --with-keygrip
/home/you/.gnupg/pubring.kbx
------------------------------
pub   rsa4096 2022-12-06 [C]
      AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
      Keygrip = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
uid           [ultimate] you <[email protected]>
sub   rsa4096 2022-12-06 [S]
      Keygrip = CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
sub   rsa4096 2022-12-06 [E]
      Keygrip = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
sub   ed25519 2022-12-06 [A] <- 可用於驗證的子金鑰
      Keygrip = EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE <- 我們要的 keygrip
  1. 將 keygrip 寫入 .gnupg/sshcontrol -> echo EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE >> .gnupg/sshcontrol
  2. 根據第三個參考網址 setup-the-gpg-agent-for-ssh-authentication 章節設定 gpg-agent

這時後重新開啟終端機就可以用 gpg 取代原本的 ssh key 了,確認移除 ssh key 真的還可以登入後就可以把舊的 ssh key 收起來了。

好想養貓阿~~
使用 Hugo 建立
主題 StackJimmy 設計