使用gpg-agent

时间:2017-10-24 06:56:47

标签: repository gnupg unattended-processing gpg-agent

对于我的SolydXK存储库,我想在Debian stretch-backports中添加一些可用的软件包。

我已成功设置conf / distributions,conf / updates和FilterList文件,并且以下命令在登录服务器时成功运行:

reprepro -b /path_to_repository_basedir update

将文件添加到存储库时,我必须填写我的gpg密码以对文件进行签名。在会议期间,我只需要做一次。

现在,我已经尝试通过创建从我的.bash_profile调用的脚本来无人值守签名:

#!/bin/sh

OURKEY=ABCDEFGH
PASSPHRASE=my_passphrase
PIDOF=`pidof gpg-agent`
RETVAL=$?

# Decide wether to start gpg-agent daemon.
if [ "$RETVAL" -eq 1 ]; then
       echo "Starting gpg-agent daemon."
        eval `gpg-agent --allow-preset-passphrase --allow-mark-trusted --default-cache-ttl-ssh 4294967295 --default-cache-ttl 4294967295 --max-cache-ttl 4294967295 --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info"`
else
       echo "Daemon gpg-agent already running."
fi


if [ -f "${HOME}/.gpg-agent-info" ]; then
  . "${HOME}/.gpg-agent-info"
  export GPG_AGENT_INFO
  export SSH_AUTH_SOCK
  export SSH_AGENT_PID
  # Create necessary symbolic link
  cp -fs `echo $GPG_AGENT_INFO | cut -d':' -f 1` "${HOME}/.gnupg/"
fi

# Default trust our own key
rm ~/.gnupg/trustlist.txt
for FP in $(gpg2 --fingerprint --with-colons --fingerprint $OURKEY | grep ^fpr | cut -d':' -f 10); do
  echo "$FP S" >> ~/.gnupg/trustlist.txt
  echo $PASSPHRASE | /usr/lib/gnupg2/gpg-preset-passphrase --preset $FP
done

# Set GPG TTY
export GPG_TTY=$(tty)

我检查了指纹(a.k.a.keygrip,但是这个版本的gpgsm不知道--with-keygrip选项)并且一切似乎都没问题。但是,当cron作业运行上述更新命令时,会显示一条错误消息,指出密码短语不正确。

服务器运行在Debian旧压缩(我知道,我必须对此做些什么,但这是另一个问题),这可能是一个大问题。这是一些版本信息:

cat /etc/debian_version
6.0.10

uname -r
3.14.52-vs2.3.6.15-1

gpg (GnuPG) 1.4.10
gpg (GnuPG) 2.0.14
gpgsm (GnuPG) 2.0.14
gpg-agent (GnuPG) 2.0.14

那么,有没有人在这里有无人值守的gpg-agent包签的经验,可以向我解释我做错了什么?

0 个答案:

没有答案