【发布时间】:2023-03-15 04:55:01
【问题描述】:
首先,总的来说,我对 https、ssl 和身份验证还很陌生。
我开发了一个 Intranet 应用程序,它应该从本地 git 存储库(托管在 Web 服务器上)和远程存储库(托管在 Unix 服务器上)实现一些“推送”。
Web 服务器是安装了 IIS 的 Windows 2003 服务器。我还在这台机器上安装了 Windows git 扩展。远程 git URL 如下所示:“https://username@server.domain.fr/team_folder/project.git”。
在 Web 服务器上,当我想从 git bash 向远程存储库推送某些内容时,会显示一个 openSSH 弹出窗口并询问我的 Windows 密码。如果我输入正确的密码,就会执行推送。这是由“askpass”配置引起的。
core.askpass = C:/Program Files (x86)/Git/libexec/git-core/git-gui--askpass
如果我删除此配置的参数,git 会在命令窗口中提示输入密码。正常...
我的问题:我们使用kerberos进行身份验证,那么是否可以在不向用户询问密码的情况下实现推送操作?如何 ?。我尝试配置腻子,但目前没有成功(就像我写的那样,我不是身份验证专家)。
现在我使用我为不询问密码而修改的 git-credential-winstore(在 IIS 服务器端不可用)。当 git 要求 GCW 获取密码时,它只是返回一个空密码。所以 git 以返回码 0 结束,我的应用程序要求用户输入密码,调用 GCW 来存储它并再次调用 git 来执行命令。它有效,但我很确定这不是最好的解决方案。
【问题讨论】:
-
git 2.8 应该可以使用
git config http.emptyAuth true。见my answer below
标签: git authentication passwords kerberos