gpg:处理消息失败:eof;Unix ksh GPG解密脚本出错
我不熟悉Unix和ksh脚本编写。我写了一个脚本来解密gpg消息。我得到这个错误,我不知道如何解决。我希望有人能看看我的剧本,帮我弄清楚到底发生了什么。感谢您提供的任何帮助。 以下是错误:gpg:处理消息失败:eof;Unix ksh GPG解密脚本出错,unix,ksh,gnupg,Unix,Ksh,Gnupg,我不熟悉Unix和ksh脚本编写。我写了一个脚本来解密gpg消息。我得到这个错误,我不知道如何解决。我希望有人能看看我的剧本,帮我弄清楚到底发生了什么。感谢您提供的任何帮助。 以下是错误: gpg: processing message failed: eof 这是我的剧本: #!/bin/ksh #################################################################### # 1. Decrypt Inbound
gpg: processing message failed: eof
这是我的剧本:
#!/bin/ksh
####################################################################
# 1. Decrypt Inbound File #
# #
# Two parms are required: output file #
# encrypted file(to be decrypted) #
# #
####################################################################
# Variable declaration #
####################################################################
outputF=$1
encryptedF=$2
id=$$
####################################################################
# print_message #
# prints messages to log file #
####################################################################
print_message()
{
message="$1"
echo "`date '+%m-%d-%y %T'` $message"
}
#####################################################################
# Validate input parameters and existence of encrypted file #
#####################################################################
if [ $1 -eq ""] || [ $2 -eq ""]
then
print_message "Parameters not satisfied"
exit 1
fi
if [ ! -f $encryptedF ]
then
print_message "$id ERROR: $encryptedF File does not exist"
exit 1
fi
#####################################################
# Decrypt encryptedF #
#####################################################
gpg --output "$outputF" --decrypt "$encryptedF"
echo "PASSPHRASE" | gpg --passphrase-fd 0
print_message "$id INFO: File Decrypted Successfully"
这不是gpg问题:-)您的脚本尝试运行gpg二进制文件两次。第一个调用尝试解码文件:
gpg --output "$outputF" --decrypt "$encryptedF"
由于没有提供密码短语输入,gpg尝试从控制台读取密码短语。现在会发生什么,取决于您的gpg配置、ksh行为等,但我怀疑与STDIN的交互在某种程度上受到了破坏,导致了EOF错误
问题的解决方案:必须将密码短语源添加到解密调用:
echo "PASSPHRASE" | gpg --passphrase-fd 0 --output "$outputF" --decrypt "$encryptedF"
您写道:
我得到了这个错误,我不知道如何解决它。
。。。请编辑您的消息,以包含错误消息的确切文本。正如您所发现的,使用{}
编辑工具来保持消息的格式。祝你好运。@Sheller更新,你认为你能帮上忙吗?请编辑你的问题,以显示你正在执行的带有gpg
的行。所有其他代码看起来都很好,我会删除它,只发布gpg
最简单的测试用例。。。。。我不确定我能帮上什么忙,根据我对unix进程的了解,我希望您的两个命令合并成一个,并将gpg
的输出发送到某个地方:一个重定向文件,如gpg…>未加密文件
或分配给shell变量,如myunecretedoutput=$(gpg…)
。您是否可以更新以包含使用简单输入短语的预期输出?祝你好运