避免 SVN 每次都需要输入密码
由于每次 svn 操作都要求输入账号密码,为了优雅的使用 svn,在搜索引擎上找了一圈,全都是让你去改 config、server 文件,实际操作下来然并卵,只会浪费你的一天。原因是自从 svn 1.12 版本之后发行说明 ,就不再支持明文保存密码了。
环境
- Ubuntu 20.04.6 LTS
- SVN 1.13.0 (r1867053)
解决方案
由于新版本的 svn 使用了 gpg-agent 来保存秘钥信息,所以我们需要对 gpg-agent 进行配置
安装和配置 gpg-agent
安装 gpg agent
1
sudo apt install gnupg-agent
安装 pinentry-tty
pinentry-tty 是更简单的文本界面
1
2
3sudo apt install pinentry-tty
echo "pinentry-program /usr/bin/pinentry-tty" >> ~/.gnupg/gpg-agent.conf
gpg-connect-agent reloadagent /bye
修改 .profile 文件,将以下内容添加到文件尾部
1
export GPG_TTY=$(tty)
保存后执行
. ~/.profile
使配置生效删除 svn 已保存的认证信息
1
rm -rf ~/.subversion/auth
重新执行 svn 操作,会提示你输入用户密码,同时 GPG-Agent 会缓存密码,下次操作时就不需要再次输入密码了
修改缓存过期时间
由于 gpg-agent 会将秘钥缓存,那既然是缓存,那肯定会过期,所以我们还要修改 gpg-agent 的配置,来延长缓存有效期,但是重启系统后还是会失效
修改 ~/.gnupg/gpg-agent.conf 文件,添加以下内容
注意:这将会降低安全性1
2default-cache-ttl 0 # 缓存时间,0 表示永久
max-cache-ttl 0
- 标题: 避免 SVN 每次都需要输入密码
- 作者: CListery
- 创建于 : 2023-09-26 11:34:54
- 更新于 : 2024-11-15 15:53:32
- 链接: http://clistery.github.io/2023/09/26/svn/svn-save-password/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论