下面的操作其实有点不合适和优雅, 我选择用gpg的认证子密钥来进行ssh认证, 但是并不想用gpg-agent来认证,我这里采用1password-agent来进行认证
因为我平常用1password, 这样认证会更精细, 但是1password不支持gpg进行ssh认证, 于是我就需要用工具转换一下, 以前有一个monkeysphere的包,里面有openpgp2ssh的python工具.
但是已经失效. 这里采用go写的一个库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| git clone git@github.com:pinpox/pgp2ssh.git
cd pgp2ssh
go build
gpg --export-secret-subkeys --armor 0ACF9AD8D2A9937D > priv-gpg
./pgp2ssh ✔ 08:53:11
2025/12/13 08:53:12 Enter path to private PGP key (default: ./priv.asc):
priv-gpg
2025/12/13 08:53:18 Keys:
2025/12/13 08:53:18 [0] 0ACF9AD8D2A9937D (primary)
2025/12/13 08:53:18 [1] A442A8BD5C05A571 (subkey)
2025/12/13 08:53:18 [2] 33086EB02C3025AC (subkey)
2025/12/13 08:53:18 [3] 124BCC07E4045BE6 (subkey)
2025/12/13 08:53:18 Choose key by index (default: 0):
3
2025/12/13 08:53:24 Continuing with key [3] 124BCC07E4045BE6
2025/12/13 08:53:24 Please enter passphrase to decrypt PGP key:
2025/12/13 08:53:34 private key type: *eddsa.PrivateKey
2025/12/13 08:53:34 public key type: eddsa.PublicKey
2025/12/13 08:53:34 public SSH key:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOxYfIXQOaudQAQH63UkKIM2gTQl1TbBJ5pJvOhl3l2x
2025/12/13 08:53:34 Private SSH key:
-----BEGIN OPENSSH PRIVATE KEY-----
|