一位同事在通过 HTTPS 连接 SVN 存储库时遇到了问题。以下是详细信息:
操作系统:Windows 7 企业版 x64
SVN 客户端:Tortoise SVN 1.6.6 x64
因此,每当他连接(通过全新签出(即清理svn checkout
)或更新现有文件(即现有工作副本))到有问题的 SVN 存储库时,他都会收到以下错误:
Error: Unable to connect to a repository at URL
Error: 'https://svn.server/svn/path/to/files'
Error: OPTIONS of
Error: 'https://svn.server/svn/path/to/files:
Error: authorization failed: Could not authenticate to server: could not parse
Error: challenge (https://svn.server/svn/path/to/files)
我让我的同事在 TortoiseSVN 中尝试执行以下操作来解决这个问题:
重置身份验证数据Tortoise SVN | 设置 | 已保存的数据对于身份验证数据和 URL 历史记录,
检查代理设置Tortoise SVN | 设置以确保我的同事与我的笔记本电脑有相同的设置。
他在 TortoiseSVN 中也有同样的代理设置(没有配置任何设置)。清除身份验证数据似乎无法解决问题。
我让我的同事使用他的登录凭据登录到已加入我们的 Active Directory 域的备用桌面,并尝试签出工作副本。他能够从备用桌面签出文件、更新文件、将文件提交到 SVN。显然,这个问题不是因为我的同事没有权限访问 SVN 存储库,因为他可以从另一台机器与服务器通信。
那么 - 我需要在他的笔记本电脑上查找什么/为什么/在哪里才能解决这个问题?根据错误消息中包含的信息,听起来他笔记本电脑上的 SSL 证书出了问题。
我应该提到 SVN 服务器是 VisualSVN Server,它使用集成 Windows 身份验证。
如果您需要任何进一步的信息请告诉我。
谢谢
理查德
答案1
听起来这篇支持文章可能是相关的:
http://www.visualsvn.com/support/topic/00052/
它似乎符合您描述的所有条件。他们的修复程序如下:
Since you run VisualSVN Server service under a dedicated user account,
you have to add SPN manually to Active Directory:
1.Logon to a Domain Controller as a domain administrator or as a user
with specific delegated permissions required to modify SPNs.
For additional information on permissions required to modify SPNs
please read the "Delegating Authority to Modify SPNs" Microsoft TechNet article.
2.Start elevated command prompt and enter the following command:
setspn -a http/hostname.contoso.com CONTOSO\username
答案2
据我所知,两台机器都位于同一个 Active Directory 域中。解决问题的第一步是:
- 检查VisualSVN 服务器日志。那里有错误吗?错误是什么?
- 检查 Windows 安全日志。当身份验证失败时会记录哪些事件?
- 他能用网络浏览器进行身份验证吗?例如使用 IE 和 FF。
- 您的机器(或者您提到的备用机器)和您同事的机器上是否有相同版本的 TortoiseSVN?
- 您安装了哪个版本的 VisualSVN Server?
了解这些详细信息,您可以解决身份验证问题很多快点。
受影响的用户可能需要升级到最新的 TortoiseSVN 1.6 版本才能解决此问题。即尽管 TortoiseSVN 1.6.6太过时了我现在看不出有任何理由使用它。考虑至少升级到 TortoiseSVN 1.6.16,
文章“在专用用户帐户下运行 VisualSVN Server 时单点登录失败”确实适用仅有的到时候VisualSVN Server 服务帐户在专用用户帐户下工作因为用户帐户必须分配 SPN 才能通过 Kerberos 进行身份验证。
Network Service
帐户默认配置了 SPN。顺便说一句,如果您没有SSPI Challenge failed: The token supplied to the function is invalid
在 VisualSVN Server 日志中看到错误 - SPN 不是根本原因。