Svn Mac上的Subversion-拒绝从密钥链获取密码

Svn Mac上的Subversion-拒绝从密钥链获取密码,svn,macos,keychain,Svn,Macos,Keychain,在Mac OS X Leopard上-当我尝试从终端访问远程存储库时,它总是要求: 1.密码 2.用户名 3.密码(再次) 消息:“身份验证领域:Subversion” 我已经检查过,我的凭证存储在Keychain中,SVN可以访问它们。为什么它不使用它们呢?默认情况下,svn(和大多数Unix应用程序)将本地用户名作为远程登录的用户名传递。我怀疑您在Subversion服务器上的帐户名与您的本地帐户名不同。因此,身份验证在您第一次输入Subversion密码时失败,svn,就像大多数Unix应

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

消息:“身份验证领域:Subversion”


我已经检查过,我的凭证存储在Keychain中,SVN可以访问它们。为什么它不使用它们呢?

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

svn --username [remote_username] ...

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

我解决了这个问题,只需删除
~/.subversion/auth/svn.simple中相应的身份验证文件(找到正确的带有grep的文件,因为它们的名称很有趣)。然后,在该存储库中的下一个svn出现后(svn询问用户名和密码),它现在可以正常工作。

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

原来我的
~/.subversion/auth
目录具有奇数权限


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

我没有答案,但我注意到,如果我在本地登录到我的机器,subversion将读取密钥链密码,但是如果我从移除机器ssh到mac,那么subversion将不会读取密钥链密码

似乎ssh登录将svn命令置于一个无法访问密钥链的环境中


这可能是您的问题吗?

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

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

(以前的用户:组对被设置为
根用户:员工

您还需要在subversion配置文件上设置
passwordstores=keychain


~/.subversion/config

从ssh窗口运行svn命令时,我遇到了相同的问题。基于上面的一些评论,我删除了~/.subversion/auth/svn.simple下的相关文件,然后直接在OSX框上的终端会话中运行我的svn命令,这会弹出一个窗口,询问我是否希望授予svn读取我的钥匙链的权限。我授予了它永久的权限,现在ssh窗口中的svn命令可以在不提示我输入密码的情况下工作。

尝试了线程中的许多方法,这对我很有效:

  • ~/.subversion/config
  • 签出/更新您的回购,输入凭证
  • 打开keychain应用程序,在登录keychain中查找包含存储库地址的行,双击该行(或每个行),选择“访问控制”选项卡并选中“允许所有应用程序访问此项目”
在那次颠覆之后,我终于记住了我的凭据


顺便说一句,当我从默认终端切换到iTerm2+zsh+oh my zsh

Subversion时,这个问题就开始了。如果您通过ssh登录,那么您可以发布
security unlock keychain~/Library/Keychains/login.keychain
来访问默认的密钥链。这对我来说也很有效-我觉得所有这些答案在某些情况下都适用要点:可能会整合成故障排除指南或其他什么。谢谢!这也解决了我的问题。但是未加密的明文后端使用了
~/.subversion/auth/
,对吗?不要将凭据目录标记为世界可写。同样,我不鼓励任何人使用明文后端。OP问为什么
svn
不再使用Keychain,这是一种更安全的方法,trias可能有一个有用的答案:我尝试了一系列其他解决方案,正是“允许所有应用程序访问此项”为我解决了这个问题