ETA:事实证明我可能搞错了。
Collabnet SVN 不是使用 ssh-agent 存储其客户端证书凭据,而是使用 gnome-keyring(或 kwallet 或其他特定于平台的密钥环) )。这反过来又导致 Git 中长期存在的开放错误,它不会尝试使用某些可用的各种 Subversion 授权提供程序。这是一个整个问题,我什至不确定谁真正负责修复它。所以就目前而言,这不是一个问题。
我正在使用 git-svn 来处理通过 HTTPS 使用客户端证书身份验证的 Subversion 存储库。我已经正确设置了 SVN 以使用证书,并且当我进行远程操作时,命令行 svn 总是提示输入我的证书密码(因为我永远不知道如何让它使用 ssh-agent 来访问凭据)。
现在我正在使用 git-svn,远程操作(如 git-svn fetch )每次仍然提示输入密码,但这次使用标题为“OpenSSH”的 X 对话框,它与每天第一次登录时出现的 ssh-agent 对话框。所以看起来 git-svn 正在尝试使用 ssh-agent (耶!),但由于某种原因无法访问在会话级别运行的代理(嘘!),因此需要启动自己的...每次调用 git-svn。
我是否遗漏了一些东西,可以让我将 git-svn “指向”正在运行的代理,从而避免每次我想要获取时都输入密码?
ETA: Turns out I may have the wrong end of the stick.
Collabnet SVN stores its client certificate credentials not by using ssh-agent
, but with gnome-keyring
(or kwallet
, or other platform-specific keyrings). This, in turn, leads to a longstanding open bug in Git where it won't try to use some of the various Subversion authorization providers that are available. This is a problem all over, and I'm not even sure who would actually be responsible for getting it fixed. So for now, it's not a SO problem.
I'm using git-svn to work against a subversion repo that uses client certificate authentication over HTTPS. I've got SVN set up properly to use certs, and command-line svn always prompts for my certificate password when I do a remote operation (because I could never figure out how to have it use ssh-agent to access credentials).
Now that I'm using git-svn, remote operations (like git-svn fetch
) still prompt for a password each time, but this time using an X dialog titled "OpenSSH", which is identical to the ssh-agent dialog I get when I first log on each day. So it looks like git-svn is trying to use ssh-agent (yay!) but for some reason can't get access to the one that runs at session level (boo!) and thus needs to start its own... for each invocation of git-svn.
Is there something I'm missing that lets me "point" git-svn at the running agent and thus avoid typing a password every time I want to fetch?
发布评论
评论(1)
据我所知,目前的答案是“提交错误报告,Git 已损坏”。
The answer for now is "file a bug report, Git is broken", as far as I can tell.