如何在提交 svn 文件后消除有关存储未加密密码的警告

27
每次我在svn中提交文件时,都会收到以下消息:

注意!您用于身份验证领域的密码:

http://domainname.com:80 “domainname.com”

只能以未加密的形式存储到磁盘上!建议您配置系统,使Subversion可以存储加密的密码。请参阅文档以获取详细信息。 您可以通过在“/root/.subversion/servers”中将'store-plaintext-passwords'选项的值设置为“yes”或“no”来避免将来出现此警告。


存储未加密的密码(是/否)?否

我不想要这个身份验证,我该如何消除这个警告?

你正在以root用户身份运行?这可不是个好主意,我的朋友。 - thekbb
3个回答

45
由于您回答了“否”,所以未在Subversion中存储密码。
我猜您想完全消除此错误 警告信息。有两种方法可以解决:
1. 简单,但困难的方法:每次使用Subversion命令时,您可以指定svn --no-auth-cache。这很容易做到,因为您不需要采取任何实际行动。但是由于您几乎每次使用一个涉及版本库的Subversion命令(特别是checkoutcommit)都要执行这样的操作,所以这也很困难。
2. 困难,但容易的方法:您可以修改用户的Subversion配置文件,使其不再询问是否要存储此信息。 (顺便问一下,为什么您要以root运行呢?您喜欢边缘生活吗?最好以用户身份运行,并配置sudo允许您执行所需的根操作。这样,您就可以跟踪谁在做什么,而且您不会意外地将服务器关闭。实际上,许多Unix / Linux系统默认不允许用户作为root登录。您需要使用sudo)。虽然这样很困难,因为您必须采取一些行动,但只需执行一次即可,以后就不用再做任何操作了。您需要编辑的文件名是/root/.subversion/servers。查找[global]部分并查找# store-passwords = no一行,并删除该行开头的#符号。您还可以对# store-plaintext-passwords = no# store-auth-cred = no两行执行相同的操作。顺便说一句,您还可以删除auth目录下的文件,这是Subversion存储其凭据的位置。这将完全消除已经存储的密码。有关更多信息,请参见Red Bean Subversion手册。现在,当您执行涉及到仓库的Subversion命令时,它会要求您输入用户名和密码,并且不会询问是否要存储它们。

在进行这些更改后,我们需要重新启动任何东西吗?似乎更改没有生效。 - pal4life
不应该进行重新启动。Subversion在每个“svn”命令中查看用户的配置文件。 - David W.
对于经验较少的Linux用户:请注意,如果要为非root用户进行David W.所述的更改,则需要编辑的服务器文件可能位于/home/USERNAME/.subversion/。 - Programmer Bruce
+1 对我来说第一个选项非常有用,因为我有一些脚本需要以CI用户身份从SVN导出,但不想让这些(有限的)凭据覆盖我的凭据。 - Dan Atkinson

10

您复制了完整的警告信息。如果阅读而不是仅仅复制粘贴,那么就可以回答您的问题:

您可以通过在“/root/.subversion/servers”中将“store-plaintext-passwords”选项的值设置为“yes”或“no”,来避免此警告的再次出现。


1
这没关系,它有助于了解实际的视角、原因、方式以及 David W 建议的任何替代方法。 - pal4life
我唯一要补充的是确保将该值添加到文件的[global]部分。 - bmaupin

5
子版本客户端之所以要求身份验证,是因为服务器需要。要摆脱身份验证要求,您需要更改服务器的配置(例如,在Apache中,去掉AuthTypeAuthNameAuthUserFile)。您可以使用其他不需要密码的身份验证方法(例如,客户端证书)。
如果您只想摆脱保存未加密密码的提示,可以设置store-plaintext-passwords=off(通过编辑~/.subversion/config),或者在Unix上运行GNOME密钥环或KDE钱包来使加密密码生效。在Windows上,SVN应该自动使用内置的NTFS加密;在Mac OS X上,使用Keyring。有关详细信息,请参见SVN手册的客户端凭据部分
您还可以在Unix上加密您的主目录。然后凭据也会被加密(但当然在您登录时任何以您或root身份运行的程序都可以使用,类似于NTFS加密)。
如果您不想让SVN存储密码,无论是加密的还是未加密的,请在SVN配置文件中设置store-passwords=no

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