![为什么我必须输入密码才能用自己的密钥加密文件?](https://linux22.com/image/1445930/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%BF%85%E9%A1%BB%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%E6%89%8D%E8%83%BD%E7%94%A8%E8%87%AA%E5%B7%B1%E7%9A%84%E5%AF%86%E9%92%A5%E5%8A%A0%E5%AF%86%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我创建了一个 4096 位、受密码保护的 RSA 密钥,用于开发工作。我的环境设置为,此密钥是我密钥环上唯一的私钥。当我尝试使用此密钥加密文件时,GPG 为什么会要求输入密码?GPG 不应该使用此密钥的公共版本来加密文件吗?如果不是,我该如何指示 GPG 使用密钥的公共版本来加密文件?我是否需要从我的私钥生成公钥,然后将其导入我的发布环?我该怎么做?
我宁愿不使用密码来加密我的文件,我只想使用密码来解密它们。
编辑:这是我使用的提示我输入密码的命令行。我已在工具中添加了代码来确定我们的私钥是否在收件人列表中,如果在,它将通过 StandardInput 传输密码,并将 --passphrase-fd 0 添加到行中。
gpg --output FileIn.txt.asc --batch --trust-model always --encrypt --sign --armor --recipient keyID1 --recipient privKeyID FileIn.txt
答案1
您不仅要加密文件,还要对文件进行签名。加密只需要访问公钥(公钥不受密码保护,因为它是公开的)。
签名基本上是反过来的:文件的校验和使用私钥加密,因此其他人(可以访问公钥)可以解密签名并验证它。
如果您想签署该文件,您将必须继续输入密码,或删除密码。