Linux服务器中的PGP

Linux服务器中的PGP,linux,encryption,pgp,Linux,Encryption,Pgp,我是PGP的新手,这里需要一些帮助。 我收到了一个扩展名为.asc的文件,它是我从另一个pgp用户的邮件中收到的,说明是文件必须加密并签名 目前用户正在使用ftp服务器,我们在linux服务器的opt/PGP/Keyrings文件夹中有.asc文件,在opt/PGP文件夹中有secring.skr和pubring.pkr 将来,他们计划迁移到SFTP服务器,他们给了我们这个新的.asc文件来处理。 问题是如何使用他们发送的.asc文件加密数据?。 注意: 我已经有了以下加密数据的代码: opt/

我是PGP的新手,这里需要一些帮助。
我收到了一个扩展名为.asc的文件,它是我从另一个pgp用户的邮件中收到的,说明是文件必须加密并签名
目前用户正在使用ftp服务器,我们在linux服务器的opt/PGP/Keyrings文件夹中有.asc文件,在opt/PGP文件夹中有secring.skr和pubring.pkr 将来,他们计划迁移到SFTP服务器,他们给了我们这个新的.asc文件来处理。
问题是如何使用他们发送的.asc文件加密数据?。
注意:
我已经有了以下加密数据的代码:

opt/PGP/pgp -es +force "PATH OF FILE TO ENCRYPT" '<RECIPIENT_ID KEY>' -z 'passphrase'
opt/PGP/PGP-es+force“要加密的文件路径”''-z'密码短语'
如何使用上述命令进行加密?它在内部使用哪些文件来加密数据?

如何在新程序中使用.asc文件?

另外,如果我使用新的.asc文件,我现有的secring.skr和pubring.pkr文件会被覆盖吗?这个问题假设.skr和.pkr文件是从.asc文件生成的
我的假设正确吗?
如果可以,是否可以有更多的.pkr文件?如何使我的脚本指向特定的.pkr文件进行加密?

公平警告:我不是专家,我在PGP兼容系统方面的经验是特定于GnuPG的,因此语法可能与您的实现不完全相同,但希望这会减少一些错误根据你的情况

首先,PGP使用非对称加密方案。这意味着它使用不同的密钥加密和解密数据。为此,用户必须生成一对(2)密钥,即它们的公钥和私钥。用一对公钥加密的数据只能用相应的私钥解密,反之亦然

一种典型的情况可能是这样的:Alice和Bob彼此交换公钥,这样他们就可以合理地确定Alice的公钥真的属于Alice,Bob的属于Bob。稍后,Alice想向Bob发送一条消息(或文件),但该消息包含她只希望Bob阅读的敏感信息。为了安全地完成传输,她用鲍勃的公钥对消息进行加密。现在,任何人都可以读取加密消息的唯一方法是首先用Bob的密钥解密它。假设Bob保持他的密钥安全,其他人将无法破译加密消息,即使他们截获了它

我怀疑您收到的.asc文件是其他用户的公钥,您需要将该公钥发送给他们消息/文件。您可以通过在文本编辑器(或Linux上的less/cat/head/tail等)中打开它并读取内容来验证这一点。如果.asc文件的第一行类似于----开始PGP公钥块----最后一行是----结束PGP公钥块----那么您知道这是它们的公钥。如果是,您将希望将其导入密钥环中,以便可以为该用户加密消息。在gpg/gpg2中,如下所示:

gpg2 --import sharedKey.asc
也有可能他们发送给您的.asc文件实际上是某种加密消息。如果是的话,你需要与他们加密的公钥相对应的私钥来读取它,但听起来你只是在进行设置,所以不应该是这样

一旦将收件人的公钥导入到密钥环中,如果您还没有公钥/私钥对,则需要生成自己的公钥/私钥对。这只需要发生一次,而不是每条消息发生一次。在gpg2中,启动生成过程的命令是

gpg2 --gen-key
此命令引导您了解一些设置详细信息,然后创建密钥对,用于证明您通过签名发送了任何给定文件。签名是一个涉及使用私钥更改您发送的消息的过程。因为您使用私钥进行签名,所以任何使用您的公钥的人都可以解密签名,如果解密成功,他们可以确保签名人控制了您的私钥(希望这意味着是您)

一旦您生成了自己的密钥对,并且导入了收件人的公钥,您就可以对文件/邮件进行加密和签名,以便将其安全地发送给此人。我不熟悉您提供的代码中的所有语法,但我将解释我认为从中可以理解的内容

-e加密指定的文件

-让我们在加密文件上签名

加密正确文件所需的“要加密的文件路径”

需要使用“收件人id密钥”为此人加密文件

-z压缩结果

“passphrase”使用您的密钥进行签名所需的密码短语

我对+force一无所知

导入收件人的公钥后,可以在密钥环中找到收件人id。在gpg中,您将使用

gpg2 -k
获取钥匙圈中所有公钥的列表。每个密钥的id都是一个8位十六进制值,列在该密钥使用的rsa级别之后。i、 e

pub rsa4096/DE936295 2017-11-28 [SC] [expires: 2018-11-28]
密钥id为DE936295

导入公钥或生成新密钥对不应覆盖密钥链中的任何内容。相反,它将添加新条目。如果你紧张的话,研究一下备份你的钥匙圈也没什么坏处。若你们丢失了你们的私钥,你们将无法解密任何用匹配的公钥加密的消息。你应该有这样的选择

gpg2 --export-secret-keys --armor -o mykey.priv.asc
gpg2 --export --armor -o pubKey.pub.asc
以帮助您备份密钥

TL;博士

  • 导入收件人的公钥
  • 生成您自己的私钥/公钥对
  • 与收件人共享您的公钥
  • 运行脚本为该收件人加密和签名文件/邮件
  • 将生成的文件移动到SFTP目录
  • 我希望它能有所帮助,尽管我99%确信这里提供的语法不会完全适合您的应用程序,但它应该为您指明正确的方向