git 从 Linux 克隆到 TFS git 存储库

git clone from Linux to TFS git repo

我一直在尝试解决托管在本地 TFS2017 上的 Git 存储库的问题,无法从 linux 机器执行 "git clone" 命令不在域中,继续获取 "fatal: Authentication failed for".

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

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

这是一个 TFS activity 日志:

在图片中我们可以看到 TOP 请求没有身份验证,没有身份和应用程序(当尝试从 Linux 访问时),但在底部,来自 Git 的相同访问 Bash(Win机器),Authentication type是"Negotiate",有Identity name和Application.

TY 伙计们。

首先,请再次确认您已遵循本教程-- Use SSH key authentication 连接到您的 Git 存储库。避免在密钥数据字段中添加空格或新行 - 它们会导致 VSTS 使用无效的 public 密钥。

此外,您还可以尝试configure Basic Authentication on your TFS Application Tier server or use Git Credential Managers从Linux进行身份验证。如果问题与您的 ssh 身份验证类型或 Linux 机器上的环境有关,这将缩小范围。

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

我已经成功解决了这个问题,其中一个步骤是配置 SSH 身份验证..
1。在 Linux 机器上,我将 TFS 服务器添加到 HOSTS 文件并安装了 Git 客户端。
然后我按照 this guide ContOS 指南>> AD 身份验证,我跟进了第 4 步。
2。在 Linux 机器上使用 "ssh-keygen" 生成 Public 密钥,并将此密钥用作
3。在 TFS 网页上,在用户图标处,我们有安全选项卡,转到 SSH public keys 并添加从 Linux 生成的密钥(必须来自public 密钥,非私有)。
4。最后从 Linux 我输入完整的回购地址,例如 git clone ssh://tfs.domain.com:22/Defaultcollection/_projectname/git

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