3

我一直在尝试解决托管在本地 TFS2017 上的 Git 存储库的问题,无法从不在域中的 linux 机器执行“git clone”命令,不断收到 “致命:身份验证失败” .

我正在使用的用户是 Linux 机器上的本地用户(与域用户同名,密码相同)用户在 Git 存储库中被授予用户在加入域的 Windows 机器上进行相同的练习时,一切正常(我使用 Git重击)。

我已经在 Linux 上创建了 ssh 密钥,并在 TFS 用户配置文件中将其更新为公共,没有帮助。

这是 TFS 活动日志: 在此处输入图像描述

在图片中我们可以看到 TOP 请求没有身份验证,没有身份和应用程序(尝试从 Linux 访问时),但在底部,来自 Git Bash(Win 机器)的相同访问,身份验证类型为“协商”,有身份名称和应用程序。

TY伙计们。

4

2 回答 2

2

我设法克服了这个问题,其中一个步骤是配置 SSH 身份验证..
1。在 Linux 机器上,我将 TFS 服务器添加到 HOSTS 文件并安装了 Git 客户端。
然后,我按照 ContOS >> AD 身份验证的本指南进行操作,然后执行步骤 4.
2。在 Linux 机器上使用“ssh-keygen”生成公钥,并将此密钥用作
3。在 TFS 网页上,在用户图标上,我们有安全选项卡,转到SSH 公钥并添加从 Linux 生成的密钥(必须来自公钥,而不是私钥)。
4 . 最终,我从 Linux 中输入完整的 repo 地址,例如git clone ssh://tfs.domain.com:22/Defaultcollection/_projectname/git

会提示你授权RSA连接,就这样。
希望有帮助。

于 2017-11-23T14:29:29.863 回答
1

首先,请再次确认您已遵循本教程——使用 SSH 密钥身份验证连接到您的 Git 存储库。避免在 Key Data 字段中添加空格或新行——它们会导致 VSTS 使用无效的公钥。

此外,您还可以尝试在 TFS 应用层服务器上配置基本身份验证或使用Git 凭据管理器从 Linux 进行身份验证。如果问题与您的 Linux 机器上的 ssh 身份验证类型或环境有关,这将缩小范围。

尝试在 git clone 命令测试期间禁用 Linux 构建代理上的防火墙。

于 2017-11-22T11:27:11.357 回答