我有多个 GPG 密钥。其中之一是我每天使用的,用于签署提交、电子邮件等,它就在我的电脑上,随时可用。我有一个我认为更值得信赖的不同密钥,我用它来加密机密信息,它在 Yubikey 中处于离线状态,我必须在我想使用它时将其插入。
对于这两个密钥,我都有身份验证子密钥。再次,按可信度划分。我可以使用我的“计算机上”密钥推送到 github,但要登录到我的 salt-master,我需要离线密钥。
现在,我正在努力解决的是,我希望在大多数服务器上都可以使用这两种密钥 - 以防万一我丢失了不太可信的密钥,有时我需要使用多个密钥访问同一服务器。就像 gitolite 管理员与用户一样。
现在我的问题是我不知道 ssh 选择哪个密钥先尝试,所以有时我被要求在推送时插入 Yubikey,但更重要的是,我还没有弄清楚如何处理 Gitolite 用例。
我可以把我的.ssh/config
不同主持人同一服务器、同一用户的条目只是不同的密钥,如果使用位于磁盘上某处的 ssh 密钥,但无法弄清楚如何输入由 提供的特定 gpg 密钥,那么效果很好gpg-agent
。有什么解决方案吗,或者我别无选择,只能恢复使用 ssh 密钥?
答案1
在 ~/.ssh/config 文件中,添加公钥而不是私钥。您可以通过 来创建公钥gpg --export-ssh-key
。 SSH 将尝试 ssh-add -l 上列出的所有密钥,并选择第一个密钥。您可以使用 -vT 选项检查日志。
导出您的身份验证标记切换 gpg 密钥
Match host company.github.com exec CMD
Hostname github.com
...
IdentityFile ~/.ssh/company.pub
Match host my.github.com exec CMD
Hostname github.com
...
IdentityFile ~/.ssh/me.pub