使用 GPG-agent,ssh-agent 不会使用“ssh-add -l”显示密钥

使用 GPG-agent,ssh-agent 不会使用“ssh-add -l”显示密钥

我一直在尝试使用 yubikey 作为通过 ssh 进行远程连接的身份验证方法指导。我很好地设置了 gpg2,我可以看到我已将密钥加载到卡上

gpg2 --card-status

我已经使用导出它

gpg2 --export-ssh-key > [keyname].txt

并且可以很好地看到生成的密钥。我的 gpg-agent.conf 设置如下:

#config pinentry-program
pinentry-program /usr/bin/pinentry

#ssh support
enable-ssh-support

#write env inf to .gpg-agent-info
write-env-file
use-standard-socket

#default cache timeout
default-cache-ttl 600
max-cache-ttl 7200

并按照指南中的说明修改了我的 .bashrc 。我有什么想法可以寻找解决方案吗?

答案1

好吧,经过一番修修补补并阅读 gpg-agent 手册页后,我让它工作了这里。我需要添加

unset SSH_AGENT_PID
     if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
       export SSH_AUTH_SOCK="${HOME}/.gnupg/S.gpg-agent.ssh"
     fi

到我的 .bashrc 中,让 SSH_AUTH_SOCK 指向正确的位置而不是 ssh-agent。

相关内容