9

在 Mac OS X Leopard 上 - 当我尝试从终端访问远程存储库时,它总是要求:1. 密码 2. 用户名 3. 密码(再次)

带有消息:“身份验证领域:http ://svn.myserver.com:80 Subversion”

我已经检查过了,我的凭据存储在钥匙串中,SVN 可以访问它们。为什么不使用它们?

4

8 回答 8

5

我通过递归更改颠覆身份验证目录的所有者解决了这个问题:

sudo chown -R myuser:staff ~/.subversion/auth/

(以前的用户:组对设置为root:staff

您还需要设置password-stores = keychain颠覆配置文件:

~/.subversion/config

于 2011-10-19T00:59:14.090 回答
4

默认情况下,svn(和大多数 Unix 应用程序)将您的本地用户名作为远程登录的用户名。我怀疑您在 Subversion 服务器上的帐户名与您的本地帐户名不同。因此,当您第一次输入 Subversion 密码时,身份验证会失败,并且svn像大多数 Unix 应用程序一样,然后会询问远程用户名和密码并尝试重新进行身份验证。您可以使用以下--username选项传递远程用户名svn

svn --username [remote_username] ...
于 2009-03-19T16:32:15.747 回答
3

从 ssh 窗口运行 svn 命令时,我遇到了同样的问题。根据上面的一些评论,我删除了 ~/.subversion/auth/svn.simple 下的关联文件,然后直接在 OSX 框上从终端会话运行我的 svn 命令,这会弹出一个窗口,询问我是否要授予权限svn 来读取我的钥匙串。我永远授予它权限,现在我的 ssh 窗口中的 svn 命令可以正常工作,而不会提示我输入密码。

于 2012-07-03T12:39:52.937 回答
3

我通过删除相应的身份验证文件解决了这个问题~/.subversion/auth/svn.simple(使用 grep 找到正确的身份验证文件,因为它们被命名为 fun)。然后在该存储库中的下一个 svn up 之后(svn 询问用户名和密码)它现在可以正常工作。

于 2010-06-07T09:49:19.707 回答
2

从线程中尝试了很多东西,这对我有用:

  • 取消password-stores = keychain评论~/.subversion/config
  • 结帐/更新您的回购,输入凭据。
  • 打开钥匙串应用程序,在登录钥匙串中找到带有存储库地址的行,双击它(或每个),选择访问控制选项卡并选中“允许所有应用程序访问此项目”

在那次颠覆之后,终于记住了我的凭据。

顺便说一句,当我从默认终端切换到 iTerm2 + zsh + oh my zsh 时,这个问题就开始了

于 2018-06-22T13:45:58.933 回答
1

你能提供更多信息吗?直到 Subversion 1.4.x 才添加密码的钥匙串缓存。你有什么错误吗?我们需要更多信息来提供帮助。

于 2009-03-19T23:48:08.900 回答
1

我在 OS X 上遇到了类似的问题,其中 SVN 只是拒绝使用我存储的凭据,尽管它们在钥匙串中明确注册并授予 svn 访问权限。

原来我的~/.subversion/auth目录有奇怪的权限。

sudo chmod 777 ~/.subversion/auth解决了我的问题。

于 2011-01-19T19:38:30.533 回答
0

I don't have the answer, but I notice that if I'm logged into my machine locally, then subversion will read the keychain password, but if I ssh into the mac from a remove machine, then subversion will not read the keychain password.

Seems that the ssh login puts the svn command in an environment which does not have access to the keychain...

Could that be your issue?

于 2011-03-15T05:30:41.730 回答