从控制台使用Subversion时如何保存密码

问题描述 投票:95回答:11

我想知道在从控制台执行svn操作时是否有办法保存我的Subversion密码。控制台是我唯一的选择。当我尝试执行任何Subversion操作时,例如svn commit,它每次都会提示输入帐户密码。有没有办法以某种方式保存此密码,以便我不必每次都重新键入它?

svn passwords
11个回答
99
投票

~/.subversion/config,你可能有store-passwords = no。将它更改为yes(或者只是将其注释掉,因为它默认为yes),并且下次你给Subversion你的密码它应该保存它。

您可能希望确保~/.subversion/config的所有者和权限正确(没有公共或组访问权限; 600)。


1
投票

不幸的是,答案并没有解决使用受保护的私钥为ssh + svn索取密码的问题。经过一些研究后我发现:

ssh-add

如果您有Linux计算机,请使用实用程序确保将密钥存储在/home/username/.ssh/中并在终端上键入此命令。


0
投票

我在Windows上使用TortoiseSVN客户端,并在%USERPROFILE%\ AppData \ Roaming \ Subversion \ config中将store-passwords参数设置为yes无助于存储密码。

删除此文件夹后,密码已成功保存(以防重命名):

%USERPROFILE%\AppData\Roaming\Subversion\auth

环境:

Windows 7,TortoiseSVN 1.7.11(Build 23600 - 64 bit,2012-12-12T19:08:52),Subversion 1.7.8。


51
投票

这取决于您使用的协议。如果您使用的是SVN + SSH,则SVN客户端无法保存您的密码,因为它永远不会触及它 - SSH客户端会直接提示您输入密码。在这种情况下,您可以使用SSH密钥和ssh-agent来避免持续提示。如果您正在使用svnserve协议或HTTP(S),则SSH客户端正在处理您的密码并可以保存它。


33
投票

尝试清除主目录中的.subversion文件夹并尝试再次提交。它应该提示您输入密码,然后询问您是否要保存密码。


16
投票

我不得不编辑~/.subversion/servers。我设置了store-plaintext-passwords = yes(之前没有)。这就是诀窍。但它可能被认为是不安全的。


7
投票

请注意~/.subversion/servers文件中的以下段落:

现在可以在config目录的“servers”文件中指定“store-passwords”和“store-auth-creds”。本节中指定的任何内容都将被“servers”文件中指定的设置覆盖。

它至少对于SVN版本1.6.12。因此,请记住编辑服务器文件,因为它会覆盖~/.subversion/config


6
投票

如果使用svn + ssh,则可以将公共ssh密钥复制到远程计算机:

ssh-copy-id user@remotehost

4
投票

对我来说(Mac用户)问题是钥匙串已经为我的凭据存储了一个条目,但是访问权限不对。

删除密钥链应用程序中的条目,然后使用svn重新创建它修复了该问题。


3
投票

如果密码被用作其他东西,使用明文可能不是最佳选择。

我支持接受的答案,但它对我不起作用 - 出于一个非常具体的原因:我想使用kwalletgnome-keyring密码存储。我尝试更改四个文件的设置:

/etc/subversion/config
/etc/subversion/servers
~/.subversion/config
~/.subversion/servers

即使在全部设置相同之后,使用password-stores和KWallet名称(默认可能是错误的,对吧?)它不起作用并且一直要求密码。 ~/.subversion中的文件具有权限600。

那么,在那一点上,你可以尝试检查一件简单的事情:

which svn

如果你得到:

/usr/bin/local/svn

然后你可能会怀疑这个客户端很可能是由你的管理员(可能是你自己,在我的情况下)本地的源代码构建的。

Subversion是一个讨厌的野兽编译,非常容易在没有HTTP支持的情况下意外构建,或者 - 如我的例子 - 不支持加密密码存储(你需要Gnome或KDE开发文件,以及其中很多!)。但./configure脚本不会告诉你,你只是得到一个功能较少的svn命令。

在这种情况下,您可以回到您的发行版附带的客户端,通常是在/usr/bin/svn。缺点是 - 你可能需要重新检查工作副本,因为没有svn downgrade命令。无论如何,你可以咨询Linus Torvalds关于Subversion的想法;)


2
投票

在全新安装的Ubuntu上,这些精彩的答案都不适合我。相反,来自this回答的线索为我做了诀窍。

我必须通过在~/.subversion/config中设置为空来允许“简单”密码存储:

password-stores =

没有现有设置,因此空白很重要。

这是除了:

store-passwords = yes

~/.subversion/servers

© www.soinside.com 2019 - 2024. All rights reserved.