我想知道在使用控制台进行Subversion操作时,是否有办法保存我的Subversion密码。控制台是我唯一的选项。当我尝试执行任何Subversion操作(例如 svn commit
)时,每次都会提示输入账号密码。有办法以某种方式保存这个密码,这样就不必每次重新输入它了吗?
~/.subversion/config
中,你可能已经设置了 store-passwords = no
。请将其更改为 yes
(或注释掉因为它默认为 yes),下一次当您提供密码给 Subversion 时,它应该会保存密码。~/.subversion/config
文件的所有者和权限是正确的(无公共或组访问;600)。/etc/subversion/config
后,系统按预期运行。谢谢。 - Ish这取决于您所使用的协议。如果您使用的是SVN + SSH,则SVN客户端无法保存密码,因为它从未接触过密码 - SSH客户端会直接提示您输入密码。在这种情况下,您可以使用SSH密钥和ssh-agent来避免不断的提示。如果您正在使用svnserve协议或HTTP(S)协议,则SSH客户端正在处理您的密码并可以保存它。
.ssh/config
中,将公钥附加到 SVN 服务器。 - lk_vc尝试清空你的家目录下的 .subversion
文件夹,然后再次尝试提交。它应该会提示你输入密码,然后询问你是否要保存密码。
我必须编辑~/.subversion/servers
文件。我将store-plaintext-passwords = yes
设置为了“是”(之前是“否”)。这解决了问题,但这可能被认为是不安全的。
store-passwords = yes
。我相信在更新到 SVN 1.7 后,它曾经被设置过,但现在被取消了。 - pieman72从版本1.12开始,保存明文密码在svn中被有意地禁用了。没有配置键可以重新启用此功能。使Subversion保存您的密码为纯文本的唯一方法是在编译时启用它。
然而,Subversion仍然能够读取明文密码。
并且有一个官方脚本可以手动将您的密码保存为纯文本。
~/.subversion/config
和~/.subversion/servers
中的任何编辑内容。如果不确定,请删除这两个文件。~/.subversion/auth/svn.simple/xxxxx
文件(其中“xxxxx”是某个哈希值),但其中还没有密码。svn auth
并注意输出中的认证域: <https://myserver.mydomain:12345> VisualSVN Server
字符串。wget https://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/store-plaintext-password.py
chmod +x store-plaintext-password.py
./store-plaintext-password.py -u your_username "<https://myserver.mydomain:12345> VisualSVN Server"
~/.subversion/auth/svn.simple/xxxxx
文件中已经包含了你的密码chmod 700 ~/.subversion/auth/svn.simple/xxxxx
chmod 700 ~/.subversion/auth/svn.simple
svn update
)。在 Ubuntu 22 上,仅需使用 apt install subversion
命令,即可安装 svn 版本 1.14.1 (r1886195),测试通过。
强调Tomasz Gandor和Domain提到的拥有正确版本的svn以及它被编译为启用纯文本密码存储,你需要验证你所拥有的:
svn --version
svn, version 1.9.7 (r1800392)
...
WARNING: Plaintext password storage is enabled!
...
The following authentication credential caches are available:
* Plaintext cache in /gr/home/ffvdqb/.subversion
* GPG-Agent
对战:
svn --version
svn, version 1.12.2 (r1863366)
...
The following authentication credential caches are available:
* Gnome Keyring
* GPG-Agent
* KWallet (KDE)
一旦您发现您的svn版本已启用明文密码存储,那么请按照这里提供的所有其余答案进行操作。
这些精彩的答案都没有在我新安装的Ubuntu上起作用。相反,这个答案中的提示对我很有帮助。
我必须通过在~/.subversion/config
中将此项设为空来允许“简单”密码存储:
password-stores =
由于之前没有任何设置,所以空白非常重要。
这还不仅仅是:
store-passwords = yes
在~/.subversion/servers
文件中。
password-stores = gnome-keyring
而不是一个空的设置。 - Thomas Rebele~/.subversion/servers
文件的段落:
这适用于SVN版本1.6.12。因此请记住编辑服务器文件,因为它会覆盖现在可以在您配置目录中的“servers”文件中指定“store-passwords”和“store-auth-creds”。在此部分中指定的任何内容都将被“servers”文件中指定的设置所覆盖。
~/.subversion/config
。对于我这个Mac用户来说,问题在于钥匙串中已经存储了我的凭据,但访问权限不正确。
通过删除钥匙串应用程序中的条目,然后使用svn重新创建它,问题得到了解决。
ssh-copy-id user@remotehost