使用 gpg-agent 进行 SSH:密钥顺序

使用 gpg-agent 进行 SSH:密钥顺序

我已设置 GPG 来与 SSH 通信(使用--enable-ssh-support)。我有两个密钥: say0x12340xABCD。这两个密钥均具有以下子密钥:

  • 签名密钥
  • 加密密钥
  • 身份验证密钥

ssh-add -L因此,当我先运行0x1234first 然后运行 ​​by 时,我有两个不同的公钥0xABCD(我认为此顺序由最后添加的密钥定义)。一切运行良好。

需要两个不同的密钥,因为我有一些服务器只接受两个密钥中的一个。但是,我也有一些服务器接受两个密钥(例如 Github)。我更喜欢使用0xABCD0x1234不是 即使两者都会被接受。但是,SSH 总是会选择第一个被接受的密钥,因此在这样的服务器中始终0x1234优先使用 而不是。0xABCD

我认为这必须在 GPG 方面进行更改,因为它是gpg-agent按照此顺序返回密钥的。

有什么方法可以强制报告按键的顺序吗?

答案1

我有同样的问题并进行了编辑~/.gnupg/sshcontrol以重新排序条目。

# List of allowed ssh keys.  Only keys present in this file are used
# in the SSH protocol.  The ssh-add tool may add new entries to this
# file to enable them; you may also add them manually.  Comment
# lines, like this one, as well as empty lines are ignored.  Lines do
# have a certain length limit but this is not serious limitation as
# the format of the entries is fixed and checked by gpg-agent. A
# non-comment line starts with optional white spaces, followed by the
# keygrip of the key given as 40 hex digits, optionally followed by a
# caching TTL in seconds, and another optional field for arbitrary
# flags.   Prepend the keygrip with an '!' mark to disable it.

# Ed25519 key added on: 2019-01-01 07:08:09
# Fingerprints:  MD5:93:75:54:e3:58:91:6c:7e:25:8f:f4:dd:98:81:8d:1a
#                SHA256:RP+Mcdf4WsZeBkfrdumZmUBlt7bPSkENyVgFpxs276o
B0651F46AEC857C8C842231E74C71A03622DBCD1 0
# ... more entries

密钥按照它们在此文件中出现的顺序使用。您可以使用ssh-add -l显示您正在查看的密钥的 sha256 哈希值ssh-add -L

相关内容