我想创建一个脚本,它会自动加密一些我不想公开的敏感文件并将其推送到 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.gpg
)mysuperpassphrase
。
对于 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。