通过GnuPG加密签名和加密文件

时间:2014-06-23 19:43:50

标签: encryption gnupg

我正在尝试通过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

我需要更改哪些内容才能成功签名和加密文件?

2 个答案:

答案 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

引用https://linux.101hacks.com/unix/gpg-command-examples/