GnuPG Shell脚本 - 拒绝读取密码

Oop*_*ame 6 passwords shell ubuntu gnupg

下面的脚本曾经在Mac OS X上运行,但是,由于它将它移动到Ubuntu,它似乎根本没有从密码文件中读取.即使我从命令行运行它,无论我做什么,我都会弹出提示,询问密码.因为这将通过cron运行,我不希望这发生...我希望它从文件中读取密码而没有提示.需要注意的是,我确实尝试过使用passphrase-fd和passphrase-file,但两者都没有...

#!/bin/sh
p=$(<pass.txt)
set -- $p
pass_phrase=$1
destination="/var/www/decrypted"
cd /var/sl_bin/
for FILE in *.pgp;
do
    FILENAME=${FILE%.pgp}
    gpg --passphrase "$pass_phrase" --output "$destination/$FILENAME" --decrypt "$FILE"
    rm -f $FILE
done
Run Code Online (Sandbox Code Playgroud)

小智 5

这有效:

gpg --no-use-agent --batch --passphrase-file pass.txt --output kkkk.tar.bz2  --decrypt kkk-data.tar.bz2.gpg
Run Code Online (Sandbox Code Playgroud)


Pau*_*ce. 0

你的问题可能$passphrase是空的。在 Ubuntu 上sh,符号链接到dash的符号链接与 Bash 的理解$(<file_name)方式不同(但也不会发出错误)。

您可以将 shebang 更改为:

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

或使用$(cat pass.txt)

另外,为什么不合并第二、第三和第四行?:(pass_phrase=$(<pass.txt)或者pass_phrase=($(<pass.txt))如果您试图删除文件中除第一个“单词”之外的所有内容)。

您之前的问题