GitLab git 用户密码

Posted

技术标签:

【中文标题】GitLab git 用户密码【英文标题】:GitLab git user password 【发布时间】:2013-03-07 21:53:27 【问题描述】:

我刚刚安装了 GitLab。

我创建了一个名为 project-x 的项目。

我创建了几个用户并将其分配给项目。

现在我尝试克隆:

 git clone git@192.168.0.108:project-x.git

它提示我输入密码。

我应该使用什么密码?

【问题讨论】:

确保您已设置 ssh 密钥:gitlab.boulder.webroot.com/help/ssh/… 【参考方案1】:

与当前场景不严格相关。有时当提示您输入密码时,是因为您添加了错误的*源格式(HTTPS 而不是 SSH)

HTTP(S) 协议通常用于具有强用户名+密码的公共存储库SSH 身份验证更常见于内部项目,您可以使用ssh-key-file 和简单的密码短语GitLab 用户更有可能使用 SSH 协议

使用

查看您的远程信息
git remote -v

如果您看到 HTTP(S) 地址,这是将其更改为 SSH 的命令:

git remote set-url origin git@gitlab.my_domain.com/example-project.git

【讨论】:

git remote set-url origin git@gitlab.com:user/project.git 这是我的问题。谢谢。 在 gitlab 中,存储库位置的下拉菜单有 SSH 和 HTTPS 选项。我使用的是 HTTPS 表单,这意味着我需要一个密码。按照上面的说明使用 SSH 表单来解决这个问题。【参考方案2】:

它提示我输入密码。

不应该。 如果您拥有代表有权访问project-x 的用户的正确公钥/私钥,那么 gitlab 不会要求您提供任何东西。

但这假设ssh -vT git@192.168.0.108首先工作。

【讨论】:

当我运行这个脚本时,它也提示我输入密码。 @KevFixx 这意味着您的 ssh 配置在本地客户端上不正确:您在哪个操作系统上执行该命令? Unix?窗户? 客户端是 Windows。服务器是 Linux。 @KevFixx 您必须修复什么配置才能使您的 ssh 正常工作? 我遇到了同样的问题。 Tortoise git 似乎在通过 git bash 进行克隆时提示输入密码。奇怪【参考方案3】:

https://github.com/gitlabhq/gitlab-shell/issues/46 的解决方案对我有用。

通过设置权限:

chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys

密码提示消失。

【讨论】:

我的解决方案不同。我找到了一个/home/git/.ssh/authorized_keys.lock 文件。删除此文件后,一切正常。 在服务器还是客户端?【参考方案4】:

我在使用 4096 位密钥时遇到了同样的问题:

$ ssh-keygen -t rsa -C "GitLab" -b 4096 $ ssh -vT git@gitlabhost ... debug1:提供公钥:/home/user/.ssh/id_rsa debug1:可以继续的身份验证:公钥、密码 debug1:尝试私钥:/home/user/.ssh/id_dsa debug1:尝试私钥:/home/user/.ssh/id_ecdsa debug1:下一个认证方法:密码 git@gitlabhost 的密码: 主机关闭连接

但是使用 2048 位密钥(默认大小),ssh 连接到 gitlab 而不提示输入密码(在将新的 pub 密钥添加到用户的 gitlab ssh 密钥之后)

$ ssh-keygen -t rsa -C "GitLab" $ ssh -vT git@gitlabhost 欢迎来到 GitLab,Joe 用户!

【讨论】:

【参考方案5】:

如果主机名称中包含“-”,则可能会发生这种情况。 (尽管根据RFC 952 这是合法的。)(使用 git 2.13.2 在 Windows 10 下使用 Git Bash 进行测试。)

ssh 提示我输入名称中恰好有“-”的任何主机的密码。这似乎纯粹是 ssh 配置文件解析的问题,因为向 ~/.ssh/config 添加别名(并在我的 git 远程 url 中使用该别名)解决了问题。

换句话说,尝试在您的 C:/Users/username/.ssh/config 中添加类似以下内容

Host a
    User git
    Hostname a-b.domain
    IdentityFile C:/Users/username/.ssh/id_rsa

以及您在哪里拥有表单的遥控器

origin  git@a-b.domain:repo-name.git

更改网址以使用以下表单

git remote set-url origin git@a:repo-name.git

【讨论】:

【参考方案6】:

在 GitLab 中添加新的 SSH 密钥后,检查 SSHD AllowGroups 中是否包含“git”组(对于 Debian /etc/ssh/sshd_config)。如果没有,添加它并重新启动 sshd (systemctl restart ssh)。

按照上面的建议使用ssh -vT git@192.168.8.2 对其进行测试。

【讨论】:

这在 CentOS 上运行的本地 GitLab 服务器上对我有用。【参考方案7】:

我的问题是我有一个gitlab.example.com 的 DNS 条目指向我的负载均衡器。所以当我尝试命令 ssh git@gitlab.example.com 时,我真的连接到了错误的机器上。

我在我的~/.ssh/config 文件中输入了一个条目:

Host gitlab.example.com
    Hostname 192.168.1.50

这浪费了很多时间......

【讨论】:

巨大的荣誉——救了我的命【参考方案8】:

在列表中添加另一个原因...在我的情况下,我发现这个问题是由服务器上的 SELinux 权限问题引起的。如果您的服务器正在运行 Fedora / CentOS / Red Hat,这是值得检查的。要测试这个场景,你可以运行:

客户端:ssh -vT git@<gitlab-server> -- 要求输入密码服务器sudo setenforce 0 客户端:ssh -vT git@<gitlab-server> -- 成功服务器sudo setenforce 1

在我的例子中,gitlab/git 用户的authorized_keys 文件有错误的 SELinux 文件上下文,并且 ssh 服务被拒绝读取它的权限。我在服务器端对此进行了如下修复:

sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/
sudo semanage fcontext -a -t ssh_home_t /gitlab/.ssh/authorized_keys
sudo restorecon -F -Rv /gitlab/.ssh/

然后我可以按预期在客户端git clone

【讨论】:

它对我有用。我从centos 7备份了gitlab并恢复到centos 8。gitlab看起来一切正常,直到我运行git fetch。我花了 6 个小时检查 ssh,重新安装系统和 gitlab,直到我尝试了你的答案。非常感谢!【参考方案9】:

我有正确的公钥/私钥,但它似乎无论如何都不起作用(出现相同的错误,提示输入 git-user 密码)。重新启动计算机后它仍然有效!

【讨论】:

可能是您没有正确处理 ssh 代理。见help.github.com/articles/… 这为我解决了密码问题。但现在它似乎在尝试克隆 repo 时挂起,即使使用 --clone-repo-directly true【参考方案10】:

在我的例子中,我使用了一对没有默认名称 id_rsaid_rsa.pub 的密钥。

生成具有这些名称的密钥解决了这个问题,我实际上是在查看ssh -vT my_gitlab_address 的输出时发现它的。奇怪的事实:它可以在一台装有 Ubuntu 的计算机上运行,​​但不能在其他具有不同发行版和旧版本 OpenSSH 的计算机上运行。

【讨论】:

【参考方案11】:

Windows机器同样的解决方案:

    生成 SSH 密钥并将密钥添加到 Git 实验室服务器 确保 2 个 SSH 密钥文件位于 /.ssh 文件夹中(例如 C:\Users\xxx.ssh)

无需密码即可成功克隆。

【讨论】:

“相同的解决方案”是什么?如果您要引用特定答案,请务必链接到它;你不能确定其他人会知道你指的是哪一个,或者甚至会保留另一个答案。【参考方案12】:

我正在使用一个 ma​​c.gitlab 安装在 centos 服务器上。

我已经尝试了以上所有方法,并为我找到了最终答案:

错误:

ssh-keygen -t rsa

右:

 ssh-keygen -t rsa -C "your.email@example.com" -b 4096

【讨论】:

【参考方案13】:

在 Windows 10 上使用 VS Code 下的终端,我在尝试以下操作时收到“git@gitlab 的密码:”提示:

git push -u origin --all

我已经在 windows 和 gitlab 中建立了我的 ssh 凭据,但我使用了 Windows 10 bash key-gen 来执行此操作。解决方案是在 VS 代码终端中调用 bash,然后再次发出命令。

bash
git push -u origin --all

成功了。

为了避免手动使用 bash/git,我在 windows .ssh/id_rsa 和 bash shell .ssh/id_rsa 之间放置了一个符号链接:

C:\Users\bruce\.ssh>mklink id_rsa C:\Users\bruce\AppData\Local\lxss\home\bruce\.ssh\id_rsa

VS Code Git 菜单操作(推送、拉取等)现在可与 gitlab 一起使用

【讨论】:

【参考方案14】:

git clone 要求输入密码时,您的本地计算机可能存在问题。我的问题是我正在使用自定义路径来保存 ssh 密钥,并且该路径对 git 不可见。使用建议的默认路径或使用ssh-add <file>在自定义位置添加文件

【讨论】:

【参考方案15】:

对于我来说,结果是 gitlab 在 docker 中运行,并且端口映射为 4022/22。

因此我必须编辑~/.ssh/config 以通过Port 4022 指定端口,例如:

Host gitlab-local
    Hostname        192.168.1.101
    User git
    Port 4022
    IdentityFile    ~/.ssh/id_rsa.pub
    # LogLevel DEBUG3

【讨论】:

你在哪里编辑的?在 docker 容器内? @L_H 在您自己的机器上编辑~/.ssh/config,而不是在 docker 内。【参考方案16】:

我遇到了同样的问题, 我花了很多时间搜索!

我想到了使用 Eclipse 从 GitLab 导入项目。

正确导入项目后,我对以下配置进行了比较:

我导入到 Eclispe 中的项目 Git 存储库(“在 Eclipse 中”,Git 存储库,在 myprojectRepo/Working Directory/.git/config 中) 用 .git / config 制作的那个,我想用 git 推送我的项目:git push ... 并要求我输入密码。

惊喜:遥控器在两种情况下都不相同。 我交了和eclipse一样的东西,一切正常。

【讨论】:

【参考方案17】:

在 Windows 10 中遇到了同样的问题(不知道这是否相关)。 一切设置正确后,ssh -vT git@myserver 命令成功,但 Gitlab 仍然要求我输入密码。

在 Gitlab 中删除然后重新创建密钥对我来说是个窍门。

【讨论】:

【参考方案18】:

在我的 Windows 10 机器上,这是因为 SSH_GIT 环境变量未设置为使用我在我的机器上安装的 putty plink。

【讨论】:

【参考方案19】:

如果您在系统上通过 ssh 设置了多个密钥(我的设备运行的是 Windows 10),您通常会遇到此问题,解决方法是:

前提条件:按照 GitLab 的指示设置 SSH 密钥

    使用 Notepad++ 或您喜欢的编辑器打开 /c/Users//.ssh/config 文件 在其中粘贴以下内容。 主机 身份文件 ~/.ssh/

请注意,第二行之前有一个空格,避免此解决方案不起作用非常重要。

【讨论】:

【参考方案20】:

如果您确定已将 key.pub 的内容上传到 GitLab,则: 1- 打开 Git Bash “非 CMD” 2- 浏览到解决方案文件夹“CD 路径” 3-键入Git Init 4-键入Git Add . 4-键入Git Commit 6- 输入Git Push

它会工作.. 另一个提示: 确保复制密钥的文件路径正确,并且与创建密钥时在 CMD 上显示的路径相同

【讨论】:

【参考方案21】:

以防万一有人遇到和我一样的问题。 我在 docker env 中运行 GitLab 服务器,我想将 ssh 连接端口设置为 2202,而不是 22,所以我将主机的 2202 端口绑定到 docker 容器的 2202 端口。我没有这样做 22 岁。

然后我忘记了我必须更改 ssh 的默认连接端口......所以我遇到了和这个问题作者一样的错误。

首先,我打开了#22端口,它工作正常,然后,我将ssh连接端口更改为2202,一切正常。

我自己很愚蠢,但它可能会帮助其他傻瓜:)

【讨论】:

以上是关于GitLab git 用户密码的主要内容,如果未能解决你的问题,请参考以下文章

Git命令总是要求输入密码

git修改本地密码和用户名称

gitlab - 使用https推送,指定用户名和密码

Git服务器里如何为各个开发者设置用户名和密码呢?在线等待回复

git重置密码和用户名

Git Clone 命令指定用户名密码