当将我的gpg代理转发到远程服务器时,我能够看到我列出的私钥。即使我在本地解锁了我的钥匙,我仍然需要在远程机器上解锁它。
但是,当我试图在远程机器上解锁时,它会向我的本地机器发送一个定位入口。使用pinentry-tty或pinentry-curses时,我无法输入密码。
它有一些奇怪的行为,它收到一些击键,有些甚至显示为纯文本。
pinentry --version
pinentry-curses (pinentry) 1.1.0本地
gpg --version
gpg (GnuPG) 2.2.27远程
gpg --version
gpg (GnuPG) 2.2.12这些是我的本地配置文件:
gpg-agent.conf
extra-socket /run/users/1000/gnupg/S.gpg-agent.extra
pinentry-program /usr/bin/pinentry-cursesssh.config
Host remote
HostName
User
RemoteForward /run/users/1000/gnupg/S.gpg-agent /run/users/1000/gnupg/S.gpg-agent.extra在远程服务器上,我还将StreamLocalBindUnlink添加到/etc/ssh/sshd_config中。
要在本地“强制”定位入口显示在某个终端上,我必须使用以下命令
gpg-connect-agent updatestartuptty /bye一旦我试图在远程服务器上签名,我就会在本地终端上看到下面的屏幕
┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site. │
│ │
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "username " │
│ 256-bit EDDSA key, ID 1234567890, │
│ created 2021-01-01. │
│ │
│ │
│ Passphrase: __________________________________________________ │
│ │
│ │
└────────────────────────────────────────────────────────────────┘当我试图输入我的密码时,我得到以下信息:
┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site. │
│ │
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "username " │
│ 256-bit EDDSA key, ID 1234567890, │
│ created 2021-01-01. │
│ │
│ │
│ Passphrase: *elo w**wd ____________________________________ │
│ │
│ │
└────────────────────────────────────────────────────────────────┘当我关闭pinentry时,我可以在命令行中看到部分纯文本。
> elo wd当我使用pinentry-tty时,行为也是一样的。
在我的本地机器上,我运行Arch,但macos上也存在同样的行为。对于我的终端模拟器,我分别使用simple terminal和iterm2。
远程机器运行Debian。
我想继续使用pinentry-tty或pinentry-curses。
另外,是否可以在本地“解锁”我的gpg私钥,并将其转发给远程服务器,而不必在远程服务器上解锁?
编辑:
似乎四年前也有人问过同样的问题!
不幸的是没有人回答。
发布于 2022-08-11 11:35:24
我在MacOS中也有同样的问题。
$ gpg --version
gpg (GnuPG/MacGPG2) 2.2.34
$ pinentry --version
pinentry-curses (pinentry) 1.2.0在同一个iTerm窗口中。运行:
$ killall gpg-agent && gpg-agent --daemon --pinentry-program /usr/local/bin/pinentry然后运行一个快速测试:
$ echo "test" | gpg --clearsign该问题是由pinentry限制在同一终端窗口上引起的。
https://unix.stackexchange.com/questions/630101
复制相似问题