2012-07-15 327 views
4

我已经严格按照manual from the gitlab wiki设置了Gitlab。有用。我有一个网络访问,我也可以创建一个项目(并且之后创建了git repo)。一切都好。Gitlab/Gitolite问题,同时克隆回购

但是,当我尝试用

git clone [email protected]:myproject.git 

从我的开发机器克隆新建项目回购的服务器说我需要为混帐用户输入密码(该用户没有密码)。我认为应该用我提供的钥匙授权我。

我的环境:我已经在我的开发机器上成功创建了ssh密钥,将HOME环境变量设置为C:\ Users \。 Ssh使用其他服务器的密钥(以及此服务器)正确授权用户。 另外我已经为我的git用户添加了生成的密钥。

下一个命令也工作正常,从本地服务器用户(这是根据手册太):

sudo -u gitlab -H git clone [email protected]:gitolite-admin.git /tmp/gitolite-admin 

的authorized_keys文件git的用户是这样的:

# gitolite start 
command="/home/git/bin/gl-auth-command gitlab",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa <LONG_KEY_HERE> [email protected] 
# gitolite end 

在我从gitlab web控制台添加ssh密钥后,我的用户密钥是否应该在authorized_keys文件中?伙计们,我做错了什么?

回答

0

好吧,我想我已经明白了。

当我从web界面为用户添加密钥时,它尚未被添加到authorized_keys文件中。我所做的是完全删除gitolite安装,然后根据gitolite wiki的本机手册重新安装。现在,当我向用户添加密钥时,此密钥已添加到authorized_keys,现在所有工作都正常。

+0

我编辑了我的答案,强调可以更快检测到这个问题的步骤。 – VonC 2012-07-16 06:40:51

3

这意味着:

  • 醚的公共/私有SSH密钥在本地没有找到(在你的~/.ssh目录)
  • 或公共密钥尚未在服务器~/.ssh/authorized_keys通过gitlab注册(这似乎是这种情况:addig你的ssh密钥应该触发其由gitlab发布)。
    这与GitLab issue 900相似。
    您可以使用换行符复制粘贴您的密钥。

坚持前取消键换行。

你会知道更多有:

ssh -vvv [email protected] 

请注意,服务器上的所有操作都为用户做了“混帐”,这就是为什么它退到要求git密码。 This is how gitolite works with ssh


由于OP提到,问题是关于gitolite未正确安装。
这是应该由GitLab的“验证步骤”进行检测的问题的类型:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 

应该产生,对于gitolite(我已经添加了“vvv”和“^^^”为重点):

# OUTPUT EXAMPLE 
Starting diagnostic 
config/database.yml............exists 
config/gitlab.yml............exists 
/home/git/repositories/............exists 
/home/git/repositories/ is writable?............YES 

vvvvvvvvvvvvvvvvvvv 

remote: Counting objects: 603, done. 
remote: Compressing objects: 100% (466/466), done. 
remote: Total 603 (delta 174), reused 0 (delta 0) 
Receiving objects: 100% (603/603), 53.29 KiB, done. 
Resolving deltas: 100% (174/174), done. 
Can clone gitolite-admin?............YES 

^^^^^^^^^^^^^^^^^^ 

UMASK for .gitolite.rc is 0007? ............YES 

如果没有,则重新安装Gitolite。