Gitlab在克隆git存储库时提示输入git密码

7
我已经使用Omnibus安装了GitLab 7.9.1。所有功能都正常。当我运行gitlab-rake gitlab:check命令时,没有错误提示。 但是,当我想要在/var/www中克隆存储库时,控制台会提示我输入git密码。 我已经在Gitlab界面中添加了SSH密钥。然而,当我尝试克隆一个存储库时,它仍然要求我输入git密码。 你认为这是什么问题? p.s 我需要指出的是,我使用的是Omnibus安装方式,而不是源代码安装方式。

这意味着您的ssh客户端没有可用的必要私钥。如果您的私钥不是~/.ssh/id_rsa,并且没有加载到ssh-agent中,您需要明确地指向git密钥。 - larsks
5个回答

6
我遇到了同样的问题。对于我来说,问题在于/etc/ssh/sshd_config文件中有一个AllowGroups指令,其中没有包括由gitlab创建的git组(查看/var/log/secure可以看出)。
我在AllowGroups后面列出了一组包含git的组,运行了“sudo / sbin / service sshd restart”,然后“git clone git@...”按预期工作。同样,在修复之后,我可以运行“ssh git@gitlab.hostname”,它会响应“欢迎来到GitLab...”,这是一种确认ssh密钥设置良好而不访问特定存储库的简单方法。

4

完全忘记提供解决方案了。实际上我已经解决了这个问题。这是一个SSH密钥的问题。

我按照GitLab上生成SSH密钥的指南进行操作,但没有正确地按照步骤操作。我在 'ssh-keygen -t rsa -C "****@***.com"' 中漏掉了电子邮件地址。

现在它已经可以正常工作了。


1

您是否正在尝试使用HTTP URL进行克隆?如果是,git将要求输入用户名和密码。请尝试使用SSH URL进行克隆;这将使git使用已设置的SSH密钥。


0

在Windows上使用SSH克隆时,我遇到了同样的错误:

正在克隆 'some_project'...
git@git.company.com的密码:
致命错误:无法从远程存储库读取。
请确保您具有正确的访问权限并且存储库存在。

密钥是可访问的,但错误在于使用命令提示符(cmd.exe)而不是Git Cmd(git-cmd.exe)。


0

我曾经遇到过同样的问题,后来发现是SELinux阻止sshd读取和打开authorized_keys文件。

Aug  9 04:10:36 gitlab01 setroubleshoot: SELinux is preventing sshd from read access on the file authorized_keys. For complete SELinux messages run: sealert -l bdda8979-07aa-47bd-baac-e818c54abb49

我实现了一个新的selinux策略,一切都很好。

~$ cat local-gitlab.te
module local-gitlab 1.0;

require {
    type var_t;
    type sshd_t;
    class file getattr;
    class file read;
    class file open;
}

#============= sshd_t ==============

#!!!! WARNING: 'var_t' is a base type.
allow sshd_t var_t:file getattr;
allow sshd_t var_t:file read;
allow sshd_t var_t:file open;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接