【问题标题】:http auth does not work with TortoiseGithttp auth 不适用于 TortoiseGit
【发布时间】:2018-05-08 15:44:53
【问题描述】:

每次我尝试从我们的远程 gogs 存储库中使用 TortoiseGit 克隆任何存储库时,我都会得到 401(未经授权)。

使用http://user:pw@ex.ample.com/user/repo.git 作为结帐网址也不起作用。
ssh 不是一个选项。在禁用 http auth 的情况下一切正常。

简化的 nginx 配置:

server {
        listen 80;
        listen [::]:80;
        server_name ex.ample.com;
                location / {
                        auth_basic "Restricted Content";
                        auth_basic_user_file /var/www/gogs/.htpasswd;
                        proxy_pass http://localhost:3000/;
                }
}

所以我的问题是:如何配置 TortoiseGit 以发送有效的 http 身份验证?

编辑:似乎只影响私人回购,公共回购是可访问的。
Edit2:在 http auth 之后也无法推送到公共仓库。

解决方案:带有反向代理的https 行为异常,因此 repo url 和 push url 必须与纯 http 一起使用。可能这里需要一些 nginx tweeking。

【问题讨论】:

  • 您到底在使用哪些 URL? user:pw@ex.ample.com/user/repo.git 不起作用,但是,http(s)://user:pw@ex.ample.com/user/repo.git 可以工作。尽管如此,TortoiseGit 还是会在需要时要求您提供用户名和密码。
  • 是的,http 主机在 url 前面。 TortoiseGit 确实要求我提供姓名和密码,但只要求一个。它没有按预期要求我要 2。 (http auth 和 git 帐户)
  • 只是添加,在 URL 中使用 user:pw 它根本不要求我提供任何凭据。
  • 为什么你认为它应该要求输入 2 个密码?那没有意义。我假设你是通过一个愚蠢的 http 传输来提供这个服务的?如果是这样,则需要允许 Web 服务器修改 git repo。
  • http://localhost:3000/ 是否也要求用户名和密码?如果是这样,您只能为您的 nginx 端点或后端 git 端点获取一个用户名和密码,否则您需要在您的 nginx 配置中提供授权,我相信

标签: git authentication nginx tortoisegit gogs


【解决方案1】:

Git 是一个“愚蠢的内容跟踪器”。它只跟踪内容,不提供或要求任何身份验证或授权。

如果您想要任何身份验证和/或授权,您需要以某种方式将其放在首位。

如果您使用 gogs,则需要在那里配置身份验证或从您的 nginx 代理传递用户名(参见https://github.com/gogits/gogs/issues/165https://github.com/gogits/gogs/issues/2170https://github.com/gogits/gogs/pull/3785,...)。

有关使用 http 的服务器 Git 的其他方法,请参阅 How to serve GIT through HTTP via NGINX with user/password?http://gitolite.com/gitolite/http/


旧答案:

对于基本身份验证,只能有一个身份验证,而不是两个甚至更多。

唯一的例外是代理身份验证(http 状态代码 407,它使用不同的标头完成)。

您可以尝试通过代理凭据 https://serverfault.com/q/511206/237109 将您的基本身份验证凭据转发到您的其他服务器,或者尝试在您的 nginx 配置中提供静态凭据。

【讨论】:

  • 这也是解决方案的重要帮助 - 需要将 git 和基本身份验证用户设置为相同的凭据并使用反向代理设置。
猜你喜欢
  • 2016-11-06
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2022-06-29
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
相关资源
最近更新 更多