gpt4 book ai didi

linux - 如何在远程服务器上使用 gpg 签名 key ?

转载 作者:IT王子 更新时间:2023-10-29 00:35:06 26 4
gpt4 key购买 nike

有没有办法在远程服务器上使用 gpg key 通过 linux 上的 gpg 程序(命令行工具)进行签名?

我正在使用 gpg 在带有测试 key 的本地主机上签署二进制文件。现在我想使用服务器访问的相同类型的 key 。我正在通过更改 gpg 工具的参数来寻找实现。

最佳答案

您可以使用 OpenSSH>=6.7GnuPG>=2.1.1

OpenSSH 6.7 引入了 unix 套接字转发,用于转发 gpg-agent 套接字。 GnuPG 2.1 摆脱了将私钥管理委托(delegate)给 gpg-agentsecring.gpg。这避免了必须将私钥保存在远程机器上。

首先,您需要在本地客户端上设置一个额外的套接字。将此行添加到您的 gpg-agent.conf

extra-socket /path/to/extra-socket

重启你的gpg-agent

pkill gpg-agent
gpg-connect-agent /bye

打开到远程服务器的 ssh 连接并将服务器 gpg-agent 套接字转发回客户端(确保 gpg-agent 尚未在远程上运行)

ssh -R ${GNUPGHOME:-~/.gnupg}/S.gpg-agent:/path/to/extra-socket remote-server

注意:GNUPGHOME 是指 gnupg 在 远程 上的主文件夹。 如果它与本地 GNUPGHOME 不同,您将不得不进行调整。

您现在应该能够在远程服务器上签名/加密,前提是它在 key 环中有您的公钥。

注意:您可能需要向您的客户端 gpg-agent.conf 添加图形输入法(qt、gtk),我不确定 curses 是否有效。

默认情况下,OpenSSH 不会在关闭连接时删除服务器上转发的套接字。这将阻止 OpenSSH 在下一次连接期间创建套接字。如果您有权访问服务器sshd_config,您可以添加以下行

StreamLocalBindUnlink yes

或者在你的注销脚本中删除它(.zlogout, .bash_logout, ...)

rm ${GNUPGHOME:-~/gnupg}/S.gpg-agent

可以在这个 GnuPG wiki 页面上找到更多信息。 https://wiki.gnupg.org/AgentForwarding

关于linux - 如何在远程服务器上使用 gpg 签名 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30058030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com