避免 SVN 每次都需要输入密码

CListery ARE YOU OK?

由于每次 svn 操作都要求输入账号密码,为了优雅的使用 svn,在搜索引擎上找了一圈,全都是让你去改 config、server 文件,实际操作下来然并卵,只会浪费你的一天。原因是自从 svn 1.12 版本之后发行说明 ,就不再支持明文保存密码了。

环境

  • Ubuntu 20.04.6 LTS
  • SVN 1.13.0 (r1867053)

解决方案

由于新版本的 svn 使用了 gpg-agent 来保存秘钥信息,所以我们需要对 gpg-agent 进行配置

  1. 安装和配置 gpg-agent

    • 安装 gpg agent

      1
      sudo apt install gnupg-agent
    • 安装 pinentry-tty

      pinentry-tty 是更简单的文本界面

      1
      2
      3
      sudo apt install pinentry-tty
      echo "pinentry-program /usr/bin/pinentry-tty" >> ~/.gnupg/gpg-agent.conf
      gpg-connect-agent reloadagent /bye
  2. 修改 .profile 文件,将以下内容添加到文件尾部

    1
    export GPG_TTY=$(tty)

    保存后执行 . ~/.profile 使配置生效

  3. 删除 svn 已保存的认证信息

    1
    rm -rf ~/.subversion/auth

    重新执行 svn 操作,会提示你输入用户密码,同时 GPG-Agent 会缓存密码,下次操作时就不需要再次输入密码了

  4. 修改缓存过期时间

    由于 gpg-agent 会将秘钥缓存,那既然是缓存,那肯定会过期,所以我们还要修改 gpg-agent 的配置,来延长缓存有效期,但是重启系统后还是会失效

    修改 ~/.gnupg/gpg-agent.conf 文件,添加以下内容
    注意:这将会降低安全性

    1
    2
    default-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 进行许可。
评论
目录
避免 SVN 每次都需要输入密码