我正在使用 Subversion 客户端 (版本 1.9.5 r1770682,从默认软件包仓库安装) 在一个只允许 SSH 访问的 Debian Stretch 机器上。我通过 HTTPS 连接到一个 Subversion 存储库,并希望避免每次执行 svn up
或 svn ci
命令时都需要重新输入密码。我也希望避免将密码明文存储在磁盘上。
SVN Book 建议我应该能够使用 GPG-Agent 缓存我的密码。尽管 svn --version
报告 GPG-Agent 认证凭据缓存应该可用,但我在让它工作方面遇到了一些问题。
关于 GPG,我已创建了 GPG 密钥对,在我的 .profile
文件中添加了 export GPG_TTY=$(tty)
,并通过加密和解密一段文本来验证了 GPG 的工作情况。
关于 Subversion,在我的 .subversion/config
文件中,我设置了以下内容:
$ grep '^[^#]' < .subversion/config
[auth]
password-stores = gpg-agent
[helpers]
[tunnels]
[miscellany]
[auto-props]
[working-copy]
在我的.subversion/servers
文件中,我设置了以下内容:
$ grep '^[^#]' < .subversion/servers
[groups]
[global]
store-passwords = yes
store-plaintext-passwords = no
然而,当我执行一个svn
命令时,密码没有被缓存。有人有什么建议吗?我可能做错了什么?有人成功地使用GPG-Agent缓存HTTPS密码吗?(也许这个凭证缓存只用于SVN+SSH连接?)
任何帮助将不胜感激。
gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info"
,然后在~/.profile中,. "${HOME}/.gpg-agent-info}"
并导出相关的环境变量。不需要使用gpgconf
。https://linux.die.net/man/1/gpg-agent - silencej