linux – 如何在远程服务器上使用gpg签名密钥?

linux – 如何在远程服务器上使用gpg签名密钥?,第1张

概述有没有办法在远程服务器上使用gpg密钥通过 linux上的gpg程序(命令行工具)进行签名? 我正在使用gpg在localhost上使用测试密钥签署二进制文件.现在我想使用服务器访问的相同类型的密钥.我只是通过改变gpg工具的参数来寻找实现. 您可以使用OpenSSH> = 6.7和GnuPG> = 2.1执行此 *** 作. OpenSSH 6.7引入了unix套接字转发,用于转发gpg-agent套接 有没有办法在远程服务器上使用gpg密钥通过 linux上的gpg程序(命令行工具)进行签名?

我正在使用gpg在localhost上使用测试密钥签署二进制文件.现在我想使用服务器访问的相同类型的密钥.我只是通过改变gpg工具的参数来寻找实现.

解决方法 您可以使用OpenSSH> = 6.7和GnuPG> = 2.1执行此 *** 作.

OpenSSH 6.7引入了unix套接字转发,用于转发gpg-agent套接字.并且GnuPG 2.1摆脱了secring.gpg将私钥管理委托给gpg-agent.这避免了必须将私钥保留在远程计算机上.

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

extra-socket /path/to/extra-socket

重启你的gpg-agent

pkill gpg-agentgpg-connect-agent /bye

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

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

注意:GNUPGHOME指的是遥控器上gnupg的主文件夹.如果它与本地GNUPGHOME不同,你将不得不适应这一点.

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

注意:您可能需要向客户端gpg-agent.conf添加图形pinentry(qt,gtk),我不确定curses会工作.

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

StreamLocalBindUnlink yes

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

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

以上是内存溢出为你收集整理的linux – 如何在远程服务器上使用gpg签名密钥?全部内容,希望文章能够帮你解决linux – 如何在远程服务器上使用gpg签名密钥?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049835.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存