我需要做的是:
我无法为远程设备提供加密功能!
我做了什么 - 第1步 - 关键准备:
gpg --armor --export-secret-key KEYNUMBER> key.priv
在我的服务器上:
gpg --import< key.pub
远程设备
我做了什么 - 第2步 - 加密文件:
gpg --armor --encrypt --recipient KEYNUMBER< file.orig> file.asc
远程设备
一切正常。正如我所希望的那样。
但是,如果我在远程设备上工作" gpg --armor --encrypt --recipient KEYNUMBER< file.orig> file.asc"这成功地产生了。我不希望远程设备能够加密。它应该只解密。
有关如何解决此问题的任何提示?
谢谢,
答案 0 :(得分:3)
您无法阻止客户端加密到该密钥,因为密钥始终包含OpenPGP中的公钥(由GnuPG实现)。
来自RFC 4880,突出显示我:
5.5.1.3。密钥包(标签5)
Secret-Key数据包包含在公钥包中找到的所有信息,包括公钥材料,但也包括所有公钥后的密钥材料字段。
5.5.1.4。秘密子密钥包(标签7)
Secret-Subkey数据包(标记7)是Secret Key数据包的子模板,具有完全相同的格式。
如果要确保从服务器发送消息,则必须使用第二个密钥对对其进行签名,其中服务器具有私钥,而客户端仅具有公钥。
答案 1 :(得分:1)
您应该问自己为什么不希望远程设备能够加密。一方面,您说您不需要身份验证,但OTOH您可能希望通过确保只有服务器能够加密来实现某种身份验证。因此,如果您需要身份验证和完整性保护,请使用为其设计的机制,即数字签名。如果您不需要身份验证,请不要担心设备能够加密消息。