Kus*_*nda 5 ssh tty gpg gpg-agent pinentry
我正在gpg-agent
我的 Mac 上启动一个本地extra-socket
选项。然后我使用 SSH 连接到远程站点,将远程S.gpg-agent
套接字转发到本地S.gpg-agent.extra
套接字。这有效:
ssh -R /remotehome/.gnupg/S.gpg-agent:/localhome/.gnupg/S.gpg-agent.extra remotesystem
Run Code Online (Sandbox Code Playgroud)
当我想在远程机器上签名时,pinentry
本地会弹出对话框并要求输入密码,这就是它应该工作的方式。但是,当我开始输入密码时,某些按键显然会进入pinentry
(它们显示为*
),而某些按键最终会出现在与pinentry
进程在同一 tty 上运行的 shell中。
??????????????????????????????????????????????????????????????????
? Note: Request from a remote site. ?
? ?
? Please enter the passphrase to unlock the OpenPGP secret key: ?
? "My name <my.email@address>" ?
? 4096-bit RSA key, ID MYKEYIDXXX0000YYY, ?
? created 2015-06-17 (main key ID MYMAINKEYIDXXX0000YYY). ?
? ?
? ?
? Passphrase: t*i*e_____________________________________________ ?
? ?
? <OK> <Cancel> ?
??????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
按下Return有机会将损坏的密码发送到gpg
,或者发送任何未进入pinentry
外壳的按键:
/bin/ksh: tie: not found
如何从 tty 中pinentry
获取所有密钥?
本地机器是运行 GnuPG 2.1.14(编译自pkgsrc
)的 Mac 。远程站点是具有相同 GnuPG 版本的 Linux 机器或具有 GnuPG 版本 2.1.15(没有区别)的 OpenBSD 机器。该extra-socket
选项是我的gpg-agent.conf
. 环境变量GPG_TTY
设置正确,在gpg-connect-agent updatestartuptty /bye
本地运行会移动pinentry
启动的tty ,但有同样的问题。
gpg-connect-agent updatestartuptty /bye
在远程机器上做会导致
$ gpg-connect-agent updatestartuptty /bye
gpg-connect-agent: connection to agent is in restricted mode
ERR 67109115 Forbidden <GPG Agent>
......这是我有点期望应该发生的事情。
从 curses 接口更改为 tty 接口 forpinentry
没有区别。这是pinentry
我仅有的两个接口。我不运行 X11。
更新:本地系统运行 OpenBSD 6.3 (GnuPG 2.2.9) 而远程系统是一些 Ubuntu 系统 (GnuPG 2.1.11),更糟糕的是没有按键进入pinentry
,所有内容都被 shell 读取。