SVN加密密码存储

112

我在Ubuntu机器上安装了SVN,但有一件事让我感到困惑。

每当我从终端检出(checkout)某个内容时,都会收到一个关于保存非加密密码的错误提示:

-----------------------------------------------------------------------
ATTENTION!  Your password for authentication realm:

   <[...]> Subversion Repository

can only be stored to disk
unencrypted!  You are advised to
configure your system so that
Subversion can store passwords
encrypted, if possible.  See the
documentation for details.

You can avoid future appearances of
this warning by setting the value of
the 'store-plaintext-passwords' option
to either 'yes' or 'no' in
'/home/[...]/.subversion/servers'.
-----------------------------------------------------------------------

我谷歌了一下,但是没有找到有用的信息。我找到一个主题,说这是客户端问题,而不是服务器问题,但我还是不确定。

它说“配置您的系统”,这究竟是什么意思?是服务器还是客户端?如果我是服务器,除了隐藏警告(就像它所说的那样)之外,还能做些什么吗?...

谢谢!


2
那个问题是关于如何隐藏警告,如果你不想加密密码的话。而这个问题则是关于如何配置系统来正确地加密密码。 - outis nihil
3个回答

44

14
所提供的加密存储功能是GNOME Keyring或Kwallet,但由于我在服务器上没有使用任何桌面界面,所以我猜加密似乎行不通了。对吗? - treznik
3
在第一个评论中,你可以看到有一个选项可以使用命令行,不确定它是如何工作的,但似乎是可行的。 - frisco
5
我无法相信svn不像htpasswd或类似工具一样提供散列密码的功能。 - d-_-b
19
哈希在验证密码正确性方面很有用。客户端即将发送密码到服务器,因此仅使用哈希不够。您需要以双向方式存储密码。 - Notinlist
6
您可以在不重新编译的情况下获取它,基于 http://ubuntuforums.org/showthread.php?t=1348567。只需将以下内容设置为 ~/.subversion/config 文件中的配置信息: [auth] password-stores = gnome-keyring - fikr4n
显示剩余5条评论

7
通过加密密码,您无法实现不可否认性(其他用户可以使用您的哈希值),因为由于操作系统文件权限。然而,大多数公司都已设置了子版本,使用其域密码或某种形式的SSO密码。通过加密密码,至少可以遮蔽某人访问用户的其他帐户。
我仍然关注加密强度。如果子版本密码与其他重要帐户相关联,则某人可能会测试加密强度以破解密码。
最好的方法是设置子版本客户端以关闭存储的密码并迫使懒惰的开发人员每次进行身份验证。

16
后面的提议是否“最好”取决于其他因素。如果开发人员在提交/更新过程中面临繁琐的流程,开始减少对SVN的使用,导致与其他人同步的粒度变得更粗糙,将会怎样呢?如果他们开始临时处理密码存储的方式,并以不安全的方式自动化认证过程,又将会出现什么情况? - LarsH

2

我将凭证存储在加密磁盘上。 (尽管,在挂载encfs时,凭证仍然以明文形式对我的帐户可见)

$ ls -nl ~/.subversion/
total 20K
-rw-r--r-- 1 1000 1000 4.2K 2009-07-10 13:00 README.txt
lrwxrwxrwx 1 1000 1000   31 2009-10-14 14:31 auth -> ~/crypt/subversion/auth/
-rw-r--r-- 1 1000 1000 5.7K 2009-07-10 13:00 config
-rw-r--r-- 1 1000 1000 3.6K 2009-07-10 13:00 servers

使用git-svn意味着我不需要经常输入凭证,因此完全不保存它们可能并不太麻烦。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接