要在更大的脚本中使用,我尝试将fifo与gpg
一起使用。首先,我有一个加密文件secrets.txt.gpg
me@box:~$ touch secrets.txt
me@box:~$ echo 'first secret' > secrets.txt
me@box:~$ gpg -c secrets.txt
并输入两次短密码短语(' easy')。
现在我想解密秘密文件,添加一个元素并对结果做一些事情。为了保持简单,我只是例如。想要cat
结果。尝试
me@box:~$ mkfifo fifo
me@box:~$ gpg -d secrets.txt.gpg > fifo &
[5] 9405
me@box:~$ echo 'second secret' > fifo &
[5] 9405
me@box:~$ cat < fifo
gpg: CAST5 encrypted data
second secret
在Ctrl-C
之前,使shell无法响应。我试过过程替换给出了
me@box:~$ cat <(gpg -d secrets.txt.gpg) <(echo 'second secret') > fifo &
[7] 9422
me@box:~$ gpg: CAST5 encrypted data
Enter passphrase: easy
bash: easy: command not found
me@box:~$
如何在gpg -d
解密后将输出写入管道,添加条目并稍后加密到光盘?
答案 0 :(得分:0)
gpg
在输出解密文件之前需要密码。在第一个例子中,
gpg -d secrets.txt.gpg > fifo &
该过程在后台运行,因此无法从用户那里获得密码。我找到了
gpg --passphrase easy -d secrets.txt.gpg > fifo &
或
echo easy | gpg --passphrase-fd 0 -d secrets.txt.gpg > fifo &
会从cat <fifo
提供以下输出:
gpg: CAST5 encrypted data
gpg: encrypted with 1 passphrase
gpg: first secret
WARNING: message was not integrity protected