GitLab git用户密码

问题描述 投票:35回答:17

我刚刚安装了GitLab。

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

我创建了很少的用户并将其分配给项目。

现在我尝试克隆:

 git clone [email protected]:project-x.git

它提示我输入密码。

我应该使用什么密码?

git gitlab
17个回答
28
投票

它提示我输入密码。

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

但是,假设ssh -vT [email protected]首先工作。


1
投票

我正在使用mac.gitlab安装在centos服务器上。

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

错误:

ssh-keygen -t rsa

对:

 ssh-keygen -t rsa -C "[email protected]" -b 4096

1
投票

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

git push -u origin --all

我已经在Windows和gitlab中建立了我的ssh凭据,但是我使用了Windows 10 bash密钥来实现这一点。然后解决方案是在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一起使用


1
投票

我的问题是我有gitlab.example.com的dns条目指向我的负载均衡器。因此,当我尝试ssh [email protected]时,我真的是错误的机器。

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

Host gitlab.example.com
    Hostname 192.168.1.50

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


0
投票

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

我有想法使用Eclipse从GitLab导入项目。

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

  • 我导入Eclipse的项目的Git ripository,(“在Eclipse中”,Git Repository,在myproject Repo / Working Directory / .git / config中)
  • 在.git / config中创建的那个,我想用git推送我的项目:git push ...并问我输入密码。

惊喜:遥控器在两种情况下都不一样。我把它和日食一样,一切正常。


0
投票

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

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


0
投票

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


0
投票

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

前提条件:按照GitLab的说明设置SSH密钥

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

请注意,在第二行之前有一个空格,这对于避免此解决方案无法正常工作非常重要。


0
投票

如果你确定你已经将key.pub的内容上传到GitLab,那么:1-打开Git Bash“Not CMD”2-浏览到解决方案文件夹“CD Path”3-键入Git Init 4-类型Git Add . 4-类型Git Commit 6-键入Git Push

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


31
投票

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

查看您的远程信息

git remote -v

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

git remote set-url origin [email protected]_domain.com/example-project.git

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


12
投票

来自https://github.com/gitlabhq/gitlab-shell/issues/46的解决方案为我工作。

通过设置权限:

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

密码提示消失。


4
投票

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

$ ssh-keygen -t rsa -C“GitLab”-b 4096 $ ssh -vT git @ gitlabhost ... debug1:提供公钥:/home/user/.ssh/id_rsa debug1:可以继续的身份验证:publickey,password 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 User!


3
投票

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

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

换句话说,尝试在C:/ Users / {username} / .ssh / config中添加以下内容

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

并且你有一个表格的遥控器

origin  [email protected]:repo-name.git

更改网址以使用以下表单

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

2
投票

要向列表添加另一个原因...在我的情况下,我发现此问题是由服务器上的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


1
投票

我有正确的公钥/私钥,但似乎它无论如何都没有工作(得到相同的错误,提示输入git-user密码)。计算机重启后它工作了!


1
投票

适用于Windows机器的相同解决方案:

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

克隆应该成功,没有密码要求。


1
投票

就我而言,我使用的是一对没有默认名称id_rsaid_rsa.pub的密钥。

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

© www.soinside.com 2019 - 2024. All rights reserved.