使用作为 CLI 参数传递的密钥通过 GPG 进行加密

使用作为 CLI 参数传递的密钥通过 GPG 进行加密

我想创建一个脚本,它会自动加密一些我不想公开的敏感文件并将其推送到 GitHub 公共存储库(但确实希望与整个项目保持在一起)。

作为解决方案,我决定使用 GPG 对其进行加密。问题是我找不到任何关于如何使用作为 CLI 参数传递给命令的密码来加密特定文件的线索gpg -c

有人知道怎么做这个吗?

答案1

在批处理模式下使用选项之一--passphrase-...

  • --passphrase-fd从给定的文件描述符中读取密码

      echo mysuperpassphrase | gpg --batch -c --passphrase-fd 0 file
    
  • --passphrase-file从给定文件中读取密码

      echo mysuperpassphrase > passphrase
      gpg --batch -c --passphrase-file passphrase file
    
  • --passphrase使用给定的字符串

      gpg --batch -c --passphrase mysuperpassphrase file
    

这些都将使用 加密file(到file.gpgmysuperpassphrase

对于 GPG 2.1 或更高版本,您还需要将 PIN 输入模式设置为“环回”:

gpg --batch -c --pinentry-mode loopback --passphrase-file passphrase file

ETC。

可以以类似的方式执行解密,使用-d代替-c,并重定向输出:

gpg --batch -d --passphrase-file passphrase file.gpg > file

ETC。

答案2

我尝试了接受的答案,但没有成功。

我当时在Ubuntu 20.04.1 LTS

检查我的回答这对我有用

相关内容