我正在尝试通过GnuPG加密从命令行对文本文件进行签名和加密,但是我收到以下错误:
签名+加密失败:没有密钥
我对GnuPG知之甚少。我们的客户端给了我两个带有.asc
文件扩展名的OpenPGP密钥。他说文件1是签名文件,文件2是加密文件。
File1.asc(签名文件)看起来像这样:
-----BEGIN PGP PRIVATE KEY BLOCK-----
Version: PGP 7.0.1
(key code here)
-----END PGP PRIVATE KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP 7.0.1
(key code here)
-----END PGP PUBLIC KEY BLOCK-----
File2.asc(加密)看起来像这样:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: PGP for Personal Privacy 5.0
(key code here)
-----END PGP PUBLIC KEY BLOCK-----
然后我尝试通过命令行运行GnuPG,如下所示:
gpg -r [file ame of encryption key] -s -u [password client gave for signing] -o DirectoryWhereToOutputFile\sample.pgp -e DirectoryOfSampleFile\SampleFile
我需要更改哪些内容才能成功签名和加密文件?
答案 0 :(得分:1)
GnuPG不使用密钥作为文件,您必须先导入密钥并使用密钥ID。
gpg --import [private-key]
gpg --import [public-key]
然后,使用公钥的密钥ID(要加密的密钥):
gpg -r [key-id] -s -o [output-file] -e [input-file]
如果您不知道ID,请使用gpg --list-keys
获取所有已知密钥的列表。 gpg --list-secret-keys
只会显示您拥有私钥的用户,因此可以用于签名。
答案 1 :(得分:0)
在GnuPG中,我们生成密钥对gpg --gen-key
gpg --recipient bob --encrypt filename
gpg --decrypt sharedMessage.asc