【发布时间】:2021-01-21 22:21:16
【问题描述】:
背景:
我有一个 GPG 加密机密,不得将其写入未加密的文件。
假设它位于~/.secrets/.mysecret.gpg。
运行gpg ~/.secrets/.mysecret.gpg 会解密.mysecret.gpg 并将其保存到.mysecret 的文件中(不可接受)。运行 gpg -d ~/.secrets/.mysecret.gpg 仅打印解密的密钥(谢谢 JustinC)。
为了避免stderr并将其编码为base64以供我使用,我编写了这个shell函数作为一种方便的方法:
keyreader() {
local gpg_file=$1
echo -n "$(gpg -d "$gpg_file" 2> /dev/null)" | base64
}
运行keyreader ~/.secrets/.mysecret.gpg,输入加密后的secret密码后,打印出base64编码、解密后的secret,没有输出文件。
问题:
-
当
gpg -d ~/.secrets/.mysecret.gpg运行时,gpg 是否会写入一个包含未加密.mysecret的tmp 文件? -
当我使用上述语法时,为什么 gpg 不输出文件
.mysecret? (回答:使用了-d标志,再次感谢JustinC)。 -
假设我在运行命令之前使用了适当的
$HISTIGNORE标识符,我如何在不先将其未加密的情况下将其写入文件的情况下将命令行中的字符串加密为 .gpg AES256 加密文件?
对于第三季度,类似:
$ echo "secret info" | gpg --cipher-algo AES265 -c -o secrets_file.txt.gpg
代替:
$gpg --cipher-algo AES265 -c secrets_file.txt
【问题讨论】:
标签: unix gnupg cat password-encryption