我一直在尝试解决在本地TFS2017上托管的Git repo的问题,无法从不在域中的linux机器上执行“git clone”命令,继续获取 “致命:身份验证失败”。
我使用的用户是Linux机器上的本地用户(与域用户同名,密码相同) 用户被授予Git仓库中的用户 在从加入Windows机器的域中进行相同的钻取时,一切正常(我使用Git Bash)。
我在Linux上创建了ssh密钥,并在TFS用户配置文件中将其更新为public,没有帮助。
在图片中我们可以看到TOP请求没有身份验证,没有身份和应用程序(当试图从Linux访问时),但在底部,从Git Bash(Win机器)访问相同,身份验证类型是“Negotiate” ,有身份名称和应用程序。
TY人。
答案 0 :(得分:1)
首先,请仔细确认您已按照本教程 - Use SSH key authentication连接到您的Git回购。避免在密钥数据字段中添加空格或新行 - 它们可能导致VSTS使用无效的公钥。
此外,您还可以尝试在TFS应用程序层服务器上configure Basic Authentication或使用Git Credential Managers从Linux进行身份验证。如果问题与您的Linux机器上的ssh身份验证类型或环境相关,这将缩小范围。
尝试在git clone命令测试期间禁用Linux构建代理上的防火墙。
答案 1 :(得分:1)
我设法克服了这个问题,其中一个步骤是配置SSH身份验证。
1 。在Linux机器上,我已将TFS服务器添加到HOSTS文件并安装了Git客户端。
然后我按照this guide指南进行了ContOS>> AD身份验证,我跟进到第4步。
2 。在Linux机器上使用“ssh-keygen”生成公钥,并将此键用作 3 。在TFS网页上,在用户图标上,我们有安全选项卡,转到 SSH公钥并从Linux添加生成的密钥(必须来自公钥,而不是私有)。
的 4 即可。最终从Linux我输入完整的仓库地址,例如 git clone ssh://tfs.domain.com:22 / Defaultcollection / _projectname / git
它会提示您授权RSA连接,就是这样
希望有所帮助。