首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当转发GPG -代理时,在密码输入期间未接收密钥的gpg特定入口

当转发GPG -代理时,在密码输入期间未接收密钥的gpg特定入口
EN

Unix & Linux用户
提问于 2021-01-20 19:29:35
回答 1查看 464关注 0票数 2

当将我的gpg代理转发到远程服务器时,我能够看到我列出的私钥。即使我在本地解锁了我的钥匙,我仍然需要在远程机器上解锁它。

但是,当我试图在远程机器上解锁时,它会向我的本地机器发送一个定位入口。使用pinentry-ttypinentry-curses时,我无法输入密码。

它有一些奇怪的行为,它收到一些击键,有些甚至显示为纯文本。

代码语言:javascript
复制
pinentry --version
pinentry-curses (pinentry) 1.1.0

本地

代码语言:javascript
复制
gpg --version
gpg (GnuPG) 2.2.27

远程

代码语言:javascript
复制
gpg --version
gpg (GnuPG) 2.2.12

这些是我的本地配置文件:

gpg-agent.conf

代码语言:javascript
复制
extra-socket /run/users/1000/gnupg/S.gpg-agent.extra
pinentry-program /usr/bin/pinentry-curses

ssh.config

代码语言:javascript
复制
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中。

要在本地“强制”定位入口显示在某个终端上,我必须使用以下命令

代码语言:javascript
复制
gpg-connect-agent updatestartuptty /bye

一旦我试图在远程服务器上签名,我就会在本地终端上看到下面的屏幕

代码语言:javascript
复制
┌────────────────────────────────────────────────────────────────┐
│ 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: __________________________________________________ │
│                                                                │
│                                                    │
└────────────────────────────────────────────────────────────────┘

当我试图输入我的密码时,我得到以下信息:

代码语言:javascript
复制
┌────────────────────────────────────────────────────────────────┐
│ 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时,我可以在命令行中看到部分纯文本。

代码语言:javascript
复制
> elo wd

当我使用pinentry-tty时,行为也是一样的。

在我的本地机器上,我运行Arch,但macos上也存在同样的行为。对于我的终端模拟器,我分别使用simple terminaliterm2

远程机器运行Debian。

我想继续使用pinentry-ttypinentry-curses

另外,是否可以在本地“解锁”我的gpg私钥,并将其转发给远程服务器,而不必在远程服务器上解锁?

编辑:

似乎四年前也有人问过同样的问题!

使用来自远程站点的本地gpg-代理时混合输入

不幸的是没有人回答。

EN

回答 1

Unix & Linux用户

发布于 2022-08-11 11:35:24

我在MacOS中也有同样的问题。

代码语言:javascript
复制
$ gpg --version
gpg (GnuPG/MacGPG2) 2.2.34

$ pinentry --version
pinentry-curses (pinentry) 1.2.0

在同一个iTerm窗口中。运行:

代码语言:javascript
复制
$ killall gpg-agent && gpg-agent --daemon --pinentry-program /usr/local/bin/pinentry

然后运行一个快速测试:

代码语言:javascript
复制
$ echo "test" | gpg --clearsign

该问题是由pinentry限制在同一终端窗口上引起的。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/630101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档