在Mac OS X Leopard上 - 当我尝试从终端访问远程存储库时,它总是要求: 1.密码 2.用户名 3.密码(再次)
显示消息:“身份验证领域:http://svn.myserver.com:80 Subversion”
我已经检查过,我的凭据存储在Keychain中,SVN可以访问它们。为什么不使用它们?
答案 0 :(得分:5)
我通过递归更改subversion身份验证目录的所有者来解决这个问题:
sudo chown -R myuser:staff ~/.subversion/auth/
(之前的用户:群组对设置为root:staff
)
您还需要在subversion配置文件中设置password-stores = keychain
:
~/.subversion/config
答案 1 :(得分:4)
默认情况下,svn
(以及大多数Unix应用程序)将您的本地用户名作为远程登录的用户名传递。我怀疑您在Subversion服务器上的帐户名称与您的本地帐户名称不同。因此,第一次输入Subversion密码时身份验证失败,而svn
就像大多数Unix应用程序一样要求输入远程用户名和密码并尝试重新进行身份验证。您可以使用--username
选项将您的远程用户名传递给svn
:
svn --username [remote_username] ...
答案 2 :(得分:3)
我通过删除~/.subversion/auth/svn.simple
中的相应身份验证文件解决了这个问题(使用grep找到合适的身份验证文件,因为它们被命名为搞笑)。然后在该存储库中的下一个svn之后(svn询问了用户名和密码),它现在正常工作。
答案 3 :(得分:2)
从ssh窗口运行svn命令时遇到了同样的问题。基于上面的一些评论,我删除了〜/ .subversion / auth / svn.simple下的相关文件,然后直接在OSX框上从终端会话运行我的svn命令,弹出一个窗口,询问我是否要授予权限svn读我的钥匙串。我永远授予它权限,现在我的ssh窗口中的svn命令工作,而不提示我输入密码。
答案 4 :(得分:1)
您能提供更多信息吗?在Subversion 1.4.x之前,没有添加密钥的密钥链缓存。你有任何错误吗?我们需要更多信息来帮助您。
答案 5 :(得分:1)
我在OS X中遇到了类似的问题,其中SVN只是拒绝使用我存储的凭据,尽管他们在钥匙串中明确注册并授予svn访问权限。
原来我的~/.subversion/auth
目录有奇怪的权限。
sudo chmod 777 ~/.subversion/auth
解决了我的问题。
答案 6 :(得分:0)
我没有答案,但我注意到如果我在本地登录我的机器,那么subversion将读取钥匙串密码,但是如果我从删除机器ssh到mac,那么subversion将无法读取钥匙串密码。
似乎ssh登录将svn命令放在一个无法访问钥匙串的环境中......
这可能是你的问题吗?
答案 7 :(得分:0)
从线程中尝试了很多东西,这对我有用:
password-stores = keychain
中~/.subversion/config
那次颠覆之后,终于记住了我的凭据。
当我从默认终端切换到iTerm2 + zsh +哦,我的zsh时,这个问题就开始了