用gpg-agent和pinentry设置svn-(tty | curses)

时间:2016-12-14 12:01:00

标签: svn gnupg

我正在尝试设置svn以将我的svn密码存储在gpg-agent中。

由于盒子上没有X,我的pinentry程序可以是pinentry-ttypinentry-curses

不幸的是。似乎有一个问题:

% svn up
Updating '.':

现在一切都挂了。我查看了strace,发送给gpg-agent的最后一封邮件是GET_PASSPHRASE。我在进程列表中看到,pinentry进程已启动。

我还尝试在运行svn之前运行gpg-connect-agent updatestartuptty /bye,但这并没有改变任何内容。

所有人都有这样的设置吗?或者一些想法如何修复/调试这个?

1 个答案:

答案 0 :(得分:1)

这两个都需要一个交互式会话,svn调用时可能不会给出(尽管我对此并不确定)。

更好的解决方案可能是通过运行gpg-preset-passphrase(通常在/usr/lib/gnupg2/gpg-preset-passphrase/usr/lib/gnupg/gpg-preset-passphrase)来预设密码短语,在~/.gnupg/gpg-agent.conf之前也必须允许通过添加读行allow-preset-passphrase

将密码短语添加到缓存后,您将能够使用GnuPG执行操作一段可配置的时间(可以是任意长的)。