Gitlab私人项目接受任何人的推动

时间:2016-12-27 11:04:32

标签: windows git gitlab

我认为我在配置我的本地git时犯了一个错误,但我什么都看不到。这让我感到非常害怕,因为它允许使用此计算机的任何人完全访问我所有的个人项目。我希望我做错了什么,并且可以安全地修复它。发生了什么:

  • 我使用我的root帐户(meperso@dot.com)通过浏览器登录我的个人GitLab gitlab.somewhere.com。 (v8.5.5)
  • 我创建了一个新项目“bundle”并将其设置为私有。
  • 我正在工作(Windows 7,以me.pro身份登录),但决定检查克隆和推送的项目权限。
  • 令人惊讶的是,克隆过程(通过https)完成,预期的消息说“你的git存储库似乎是空的”。我开始担心,这应该是不可能的,我的项目是私有的,并且还没有允许帐户。
  • 我决定进一步推动它。我在我的本地目录中创建一个文件,git add it,commit和push to origin。一切正常。它甚至没有要求我的用户名/密码。在提交历史记录中,在GitLab Web界面中,提交由me.pro@local创建,Windows 7登录名在我的gitlab上没有任何授权项目。

其他信息: 我正在使用另一个托管在本地网络中的Gitlab来进行公司项目。但我今天没有登录。

我需要一些我的个人项目来获取代码片段,但我不希望有人将这台计算机(正常发生)能够推送到原点而无需进行身份验证。

以下是我在任何项目之外输入git config --list的结果。

PS C:\> git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
PS C:\>

如您所见,甚至没有配置全局用户名。

编辑1
W indows C 重新 M anager确实存储了一些凭据。我可以通过运行rundll32.exe keymgr.dll, KRShowKeyMgr并从gitlab.somewhere.com删除有关我个人Gitlab的行来从WCM中删除它们。
再次需要验证,这解决了部分问题。

但GitLab stil接受了me.pro@local的推动,尽管该项目是私有的,没有成员,所有者是meperso@dot.com。 问题仍然存在......

奖金问题:如何防止WCM存储特定项目的凭据? 答案:How do I disable git's credential helper for a single repository?
TL; DR:在你的project-folder / .git / config中,将helper =(空字符串)放在[credential]部分(或创建它)。需要git 2.9 +。

编辑2
我有一个关于承诺的理论 - 应该不应该是:
在WCM中,还有我的项目所有者帐户。提交已使用这些凭据进行身份验证,但名称是我的Windows用户。 我无法检查这个理论,在怀疑这个之前我从经理那里删除了凭证。

1 个答案:

答案 0 :(得分:2)

您已设置credential.helper=manager。这是Git credential manager for windows,我怀疑这是管理您的凭据。从位于Windows当前登录用户文件夹中的helper文件中删除[credential]块中以.gitconfig开头的所有行。