21

编辑版本

我有一个关于 GPG 的问题,但我写了所有的过程,也许它会对某人有所帮助。

我想:禁止 GPG 命令中的密码提示。我不想:使用 -c 选项(--symmetric)。

我有 2 个系统 Linux 和 Windows。我想将数据从 Linux 发送到 Windows。我想在 Linux 中加密数据并在 Windows 中解密。

  • myFileOnLinux.txt是我要加密的 Linux 上的文件。
  • my@Email.com配对键的 UID。
  • myPasswordPhrase是密码短语。

我在两者上都安装了 GPG 并执行了以下步骤:

  1. 生成一对密钥Windows

    gpg --gen-key
    
  2. 更改中的关键参数Windows

    gpg --edit-key my@Email.com
    
    trust
    5
    expire
    0
    
  3. 导出公钥:

    gpg -a --export my@Email.com > public.key
    
  4. 将公钥发送到 Linux 机器。

  5. 在 Linux 中导入公钥。

    gpg --import public.key
    
  6. 更改 Linux 中的信任参数

    gpg --edit-key my@Email.com
    
    trust
    5
    
  7. 在 Linux 中加密文件

    gpg --output output.enc --encrypt --recipient my@Email.com myFileOnLinux.txt
    
  8. 将加密文件发送到 Windows。

  9. 解密文件。

    gpg --batch --passphrase "myPasswordPhrase" -d -o test.dec output.enc
    

在带有弹出窗口的 Windows 中,它Passphrase再次询问我。我怎样才能避免它?

4

2 回答 2

62

经过大量挖掘后,我发现这个命令禁用了 Windows 上的输入提示(也适用于 *nix 系统):

--pinentry-mode=loopback

完整的命令是:

gpg --pinentry-mode=loopback --passphrase  "PASSWORD" -d -o "PATH\TO\OUTPUT" "PATH\TO\FILE.gpg"
于 2018-05-14T15:31:08.667 回答
5
gpg --batch --import sec.key
gpg -d --batch --passphrase mypassphrase encrypted_file.gpg

--batch标志在导入密钥以及解密文件时抑制密码提示。

于 2021-05-07T18:16:12.713 回答