我正在尝试使用受密码保护的 GPG 密钥与 Obnam 一起使用,它以批处理模式调用gpg
(Ubuntu Server 14.04 上的 1.4.x)。gpg
无法在批处理模式下询问密码。gpg-agent
我发现的所有内容似乎都涉及 GUI 对话框,但我正在通过 ssh 使用 Ubuntu Server,并且服务器没有安装 x.org。
GPG 的非 GUI 等效项是什么ssh-add
?也就是说,它想调用终端中可以工作的某个程序,将密码或解锁的密钥缓存在 RAM 中,然后调用obnam
,后者又以gpg
批处理模式调用,并使其工作。
答案1
首先安装pinentry-curses
,然后安装。在你的目录中gnupg-agent
创建一个名为的文件(通常是),并输入类似gpg-agent.conf
GNUPG_HOME
~/.gnupg
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 31536000
default-cache-ttl-ssh 31536000
max-cache-ttl 31536000
max-cache-ttl-ssh 31536000
在文件中。(数字是缓存有效期,以秒为单位。)
然后,要缓存解锁的密钥,请运行
GPG_TTY=$(tty)
eval "$(gpg-agent --daemon)"
接下来是一些gpg
需要钥匙解锁的操作。