禁止 GPG 命令中的密码提示

Posted

技术标签:

【中文标题】禁止 GPG 命令中的密码提示【英文标题】:Suppress the passphrase prompt in GPG command 【发布时间】:2018-08-10 20:41:03 【问题描述】:

编辑版本

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

我想:我不想:使用 -c 选项(--symmetric)。

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

myFileOnLinux.txt 是 Linux 上我要加密的文件。 my@Email.compair key 的 UID。 myPasswordPhrase 是密码短语。

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

    Windows中生成一对key:

    gpg --gen-key
    

    更改Windows中的关键参数:

    gpg --edit-key my@Email.com
    
    trust
    5
    expire
    0
    

    导出公钥:

    gpg -a --export my@Email.com > public.key
    

    将公钥发送到 Linux 机器。

    在 Linux 中导入公钥。

    gpg --import public.key
    

    在 Linux 中更改信任参数

    gpg --edit-key my@Email.com
    
    trust
    5
    

    在 Linux 中加密文件

    gpg --output output.enc --encrypt --recipient my@Email.com myFileOnLinux.txt
    

    将加密文件发送到 Windows。

    解密文件。

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

在带有弹出窗口的 Windows 中,它再次询问我 Passphrase。如何避免?

【问题讨论】:

试试--passphrase-file 选项。 同样的问题:( 找到这个:unix.stackexchange.com/questions/60213/… @i486 谢谢,但正如我提到的,我不想使用 -c 作为选项。 @MalusJan 你能解决这个问题吗?我在 Windows 的 gnupg2.x 上遇到了类似的问题。 【参考方案1】:

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

--pinentry-mode=loopback

完整的命令是:

gpg --pinentry-mode=loopback --passphrase  "PASSWORD" -d -o "PATH\TO\OUTPUT" "PATH\TO\FILE.gpg"

【讨论】:

天哪,我一直在浪费时间试图弄清楚这一点。那里的每个答案要么使用旧版本的 gpg,其中密码/批处理选项过去在 Windows 中工作,要么他们是那些选项仍然有效的 linux 用户。谢谢。 GPG 1.4.7 可以正常使用“--batch”开关来抑制交互式命令。对于 GPG 2.2+,“--batch”开关不起作用,但“--pinentry-mode=loopback”可以在运行命令时抑制密码短语窗口。感谢您的解决方案! 这行得通。但是,我必须保留“--batch”和“--yes”开关。如果目标文件存在,则覆盖弹出窗口将阻止该过程。所以添加这两个开关会自动抑制并回答是覆盖。 @sunpack --pinentry-mode=loopback 在 gpg v2.2.20 上使用和不使用 --batch--yes 对我来说都很好,还与 --passphrase-fd 0 和密码短语中的管道结合使用。 @mayank-jha 单独--batch--yes 对我也不起作用。【参考方案2】:
gpg --batch --import sec.key
gpg -d --batch --passphrase mypassphrase encrypted_file.gpg

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

【讨论】:

以上是关于禁止 GPG 命令中的密码提示的主要内容,如果未能解决你的问题,请参考以下文章

禁止使用命令提示符

ssh禁止密码登录

整理14. 禁止自动填充浏览器记住的密码?

禁止单个 sudo 命令的日志条目

MS Access - 使用子表单过滤时禁止保存提示

如何配置ssh使用密钥登录,禁止口令登录