有几个主题解决类似的问题,但其中提供的解决方案都不适合我的环境,即:
- macOS 11.2.3(MacBookPro M1/Apple 芯片)
- GnuPG 2.2.27(通过 Homebrew 安装)
- Zsh shell
- GPG 密钥,带有用于 SSH 的仅身份验证子密钥
这〜/.gnupg/gpg-agent.conf文件:
pinentry-program /opt/homebrew/bin/pinentry-tty
enable-ssh-support
这〜/ .gnupg / sshcontrol文件:
FADD8723...AE7ED (the keygrip retrieved with `gpg -K --with-keygrip`)
这〜/.zshrc文件:
unset SSH_AGENT_PID
export GPG_TTY="$(tty)"
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent
我确定ssh代理未运行(还重新启动系统以确保)。但运行时没有找到key:
ssh-add -L
The agent has no identities
我缺少什么?
编辑:我应该补充一点,我还配置了一些像这样的 Debian 10 系统,并且它工作得很好。
答案1
看起来您正在使用gpg-agent
SSH 密钥而不是ssh-agent
.这很好,但由于 SSH 密钥可以安装在系统上的任何位置,因此您仍然必须ssh-add
像以前一样将密钥添加到代理中。至少在Linux上,gpg-agent
会记住你告诉它的键并尝试下次加载它们,但你仍然需要告诉它首先使用哪些键。