我使用Omnibus安装了GitLab 7.9.1。
一切正常。当我做gitlab-rake gitlab:check时,我没有错误。
但是,当我想在/ var / www中克隆存储库时,控制台会提示我输入git密码。
我在Gitlab界面中添加了SSH密钥。但是,当我尝试克隆存储库时,它仍然要求我输入一个git密码。
您怎么看?
p.s我想指出我使用的是Omnibus安装,而不是从源代码安装。
答案 0 :(得分:4)
我遇到了同样的问题。对我来说问题是/ etc / ssh / sshd_config有一个AllowGroups指令,它不包含gitlab创建的git组(查看/ var / log / secure拼写出来)。
我将git附加到AllowGroups之后列出的一组组,运行sudo /sbin/service sshd restart
,然后git clone git@...
按预期工作。类似地,在修复之后我可以运行ssh git@gitlab.hostname
并且它响应“欢迎使用GitLab ...”这是一种简单的方法来确认ssh密钥设置很好,无需访问特定的仓库。
答案 1 :(得分:1)
您是否尝试使用HTTP网址进行克隆?如果是这样,git将要求输入用户名和密码。尝试使用SSH URL进行克隆;这将使git使用已设置的SSH密钥。
答案 2 :(得分:1)
完全忘了提供解决方案。我实际上解决了这个问题。这是SSH密钥的问题。
我按照gitlabs上的指南介绍了如何生成SSH密钥。我没有正确地遵循它。我错过了' ssh-keygen -t rsa -C" **** @ ***。com"'
中的电子邮件地址现在有效。
答案 3 :(得分:0)
尝试在Windows上使用SSH克隆时遇到相同的错误:
克隆到“ some_project” ...
git@git.company.com的密码:
致命:无法从远程存储库读取。
请确保您具有正确的访问权限和存储库 存在。
该键是可访问的,但错误是使用命令提示符(cmd.exe)而不是Git Cmd(git-cmd.exe)。
答案 4 :(得分: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;
答案 5 :(得分:-1)
可能的原因:
chmod 400 ~/.ssh/id_rsa*