我已经使用Omnibus安装了GitLab 7.9.1。所有功能都正常。当我运行gitlab-rake gitlab:check命令时,没有错误提示。
但是,当我想要在/var/www中克隆存储库时,控制台会提示我输入git密码。
我已经在Gitlab界面中添加了SSH密钥。然而,当我尝试克隆一个存储库时,它仍然要求我输入git密码。
你认为这是什么问题?
p.s 我需要指出的是,我使用的是Omnibus安装方式,而不是源代码安装方式。
完全忘记提供解决方案了。实际上我已经解决了这个问题。这是一个SSH密钥的问题。
我按照GitLab上生成SSH密钥的指南进行操作,但没有正确地按照步骤操作。我在 'ssh-keygen -t rsa -C "****@***.com"' 中漏掉了电子邮件地址。
现在它已经可以正常工作了。
您是否正在尝试使用HTTP URL进行克隆?如果是,git将要求输入用户名和密码。请尝试使用SSH URL进行克隆;这将使git使用已设置的SSH密钥。
在Windows上使用SSH克隆时,我遇到了同样的错误:
正在克隆 'some_project'...
git@git.company.com的密码:
致命错误:无法从远程存储库读取。
请确保您具有正确的访问权限并且存储库存在。
密钥是可访问的,但错误在于使用命令提示符(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;
~/.ssh/id_rsa
,并且没有加载到ssh-agent中,您需要明确地指向git密钥。 - larsks