我已经这样export GPG_TTY=$(tty); gpg-connect-agent updatestartuptty /bye;
做了.profile
,以便 GPG 知道在运行 pinentry 时要使用哪个 tty。
问题是这导致 pinentry 开始于最近开设的 pty与我想要的相反,我想要的是导致 pinentry 运行的 pty。
有什么解决办法吗?我也将 gpg-agent 作为 ssh-agent 运行。
相关的是,偶尔当我开始一个需要 pinentry 的操作时,什么也没有发生 - pinentry 不会在任何 pty 上运行,即使是最近打开的 pty。
谢谢!
答案1
代理在本地套接字上接受连接。当它接受连接时,它无法确定请求程序连接到哪个 tty,也无法确定它是否连接到 tty。因此它必须根据其他标准选择输入源。
如果您没有看到任何事情发生,那么它可能选择了已关闭或不可用的 tty。