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

Gitlab prompts for git password when cloning a git repository

我已经使用 Omnibus 安装了 GitLab 7.9.1。

一切正常。当我执行 gitlab-rake gitlab:check 时,我没有收到任何错误。

但是,当我想在 /var/www 中克隆存储库时,控制台会提示我输入 git 密码。

我在Gitlab界面添加了SSH密钥。但是,当我尝试克隆存储库时,它仍然要求我输入 git 密码。

你怎么看?

p.s 我想指出的是我使用的是 Omnibus 安装,而不是从源安装。

您是否尝试使用 HTTP URL 进行克隆?如果是这样,git 将询问用户名和密码。尝试使用 SSH URL 进行克隆;这将使 git 使用已设置的 SSH 密钥。

我遇到了同样的问题。对我来说,问题是 /etc/ssh/sshd_config 有一个 AllowGroups 指令,该指令不包括由 gitlab 创建的 git 组(查看 /var/log/secure 拼写出来)。

我将 git 附加到 AllowGroups、运行 sudo /sbin/service sshd restart 之后列出的一组组中,然后 git clone git@... 按预期工作。同样,修复后我可以 运行 ssh git@gitlab.hostname 并且它以 "Welcome to GitLab..." 响应,这是确认 ssh 密钥设置正常 w/o 访问特定存储库的简单方法。

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

我遵循了 gitlabs 上关于如何生成 SSH 密钥的指南。我没有正确地遵循它。我错过了 'ssh-keygen -t rsa -C "****@***.com"'

中的电子邮件地址

现在可以了。

我在 Windows 上尝试使用 SSH 进行克隆时遇到了同样的错误:

Cloning into 'some_project'...
git@git.company.com's password:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.

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

我遇到了同样的问题,结果是 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;