我在这里有点沮丧,也许你知道问题可能出在哪里:
- 我有一个构建过程,最后有几个 reprepro 命令
构建脚本使用 sudo 执行
( cd "$PUBLISHDIR" && \ reprepro -Vb . -C untested remove squeeze foobar && \ reprepro -Vb . -C untested includedeb squeeze ./foobar_*.deb && \ reprepro -Vb . -C untested list squeeze foobar )
我已经设置了 gpg,并且添加了密钥。代理正在运行
ps lax | grep gpg-agent 1 1002 25345 1 20 0 19284 996 - Ss ? 0:00 /usr/bin/gpg-agent --daemon --sh
我的 gpg-agent.conf 也已设置
# ignore-cache-for-signing enable-ssh-support write-env-file /home/daily/.gnupg/gpg-agent-info default-cache-ttl 31536000 default-cache-ttl-ssh 31536000 max-cache-ttl 31536000 max-cache-ttl-ssh 31536000 debug-all
我在 .bashrc 中像这样启动代理
GNUPGHOME=~/.gnupg GPGAGENT=/usr/bin/gpg-agent PID_FILE=$GNUPGHOME/gpg-agent-info if grep -qs '^[[:space:]]*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" && test -x $GPGAGENT & then if [ -r "$PID_FILE" ]; then . "$PID_FILE" count=`ps lax | grep "/usr/bin/gpg-agent" | grep "$SSH_AGENT_PID" | wc -l` if [ $count -eq 0 ]; then if ! $GPGAGENT 2>/dev/null; then $GPGAGENT --daemon --sh > "$PID_FILE" . "$PID_FILE" echo "INFO::agent started" fi else echo "INFO::agent already running" fi fi fi ssh-add
但无论我多久运行一次整个过程,它总是会在 reprepro 的签名过程中询问我密码。我以为代理会缓存这个密码,下次执行时它将被存储并且不再被询问...但它确实要求输入密码...一次又一次...
任何人都可以想到错误或其他原因,也许为什么它总是要求输入密码?