我gpg-agent
用于管理 PGP e SSH 身份。代理以这样的脚本启动
gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"
export GPG_TTY="$(tty)"
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
source "$gpg_agent_env" 2> /dev/null
fi
Run Code Online (Sandbox Code Playgroud)
每当我运行交互式 shell 时,它就会被获取。使用此设置一切正常,但存在问题。假设我:
此时gpg-agent
将开始pinentry-curses
提示密码,但它会在第一个终端中执行此操作,导致其输出与正在运行的任何内容(通常是文本编辑器)混合,无法恢复程序或停止输入(它开始使用 100% cpu我必须杀死它)。
我一定在这里做错了什么。任何人都经历过这种情况?
我发现这种情况只发生在提示解锁 SSH 密钥时,看起来像这样,而 PGP 密钥的提示总是在正确的(即当前的)tty 上打开。