我正在运行带有 OpenPGP 小程序的 YubiKey NEO 以将我的 GPG 密钥存储在智能卡上。我已经通过删除启动条目手动停止了所有其他 SSH 和 GPG 代理(在基本 OS Luna、Ubuntu 12.04 上)。
然后我开始了这个scdaemon过程,确保它的环境变量被导出:
$ scdaemon --daemon
SCDAEMON_INFO=/tmp/gpg-zKwfGU/S.scdaemon:13142:1; export SCDAEMON_INFO;
$ SCDAEMON_INFO=/tmp/gpg-zKwfGU/S.scdaemon:13142:1; export SCDAEMON_INFO;
Run Code Online (Sandbox Code Playgroud)
然后我开始了这个gpg-agent过程,再次确保环境变量被导出:
$ gpg-agent --enable-ssh-support --daemon --write-env-file "${HOME}/.gpg-agent-info"
GPG_AGENT_INFO=/tmp/gpg-9UaXHX/S.gpg-agent:13322:1; export GPG_AGENT_INFO;
SSH_AUTH_SOCK=/tmp/gpg-WAYxYZ/S.gpg-agent.ssh; export SSH_AUTH_SOCK;
SSH_AGENT_PID=13322; export SSH_AGENT_PID;
$ GPG_AGENT_INFO=/tmp/gpg-9UaXHX/S.gpg-agent:13322:1; export GPG_AGENT_INFO;
$ SSH_AUTH_SOCK=/tmp/gpg-WAYxYZ/S.gpg-agent.ssh; export SSH_AUTH_SOCK;
$ SSH_AGENT_PID=13322; export SSH_AGENT_PID;
Run Code Online (Sandbox Code Playgroud)
我现在去连接到我的 SSH 服务器:
$ ssh user@myhost.net
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
奇怪的。
如果我尝试像这样运行该ssh过程gpg-agent,它就可以正常工作™:
$ gpg-agent --enable-ssh-support --daemon ssh user@myhost.net …Run Code Online (Sandbox Code Playgroud)