5

我创建这个问题是为了帮助其他人在尝试推送初始化的存储库时搜索有关两个 GitLab 配置问题的文档:

1:即使在 GitLab 前端设置了 SSH 密钥后,GitLab 服务器上的 git 用户也需要密码:

$ git push -u origin master
git@hostname's password: 

2: gitlab-shell 客户端在尝试推送时似乎在错误的位置寻找您的存储库(/home/git/repositories所有存储库都应按中指定的方式存储/home/git/gitlab-shell/config.yml):

$ git push -v -u origin master
Pushing to git@hostname:sadmicrowave/test-project.git
fatal: 'sadmicrowave/test-project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
4

1 回答 1

6

当 SSH 密钥被添加到 GitLab 前端时,我注意到它没有被相应地添加到/home/git/.ssh/authorized_keys文件中。经过一番挖掘,我发现了这个https://github.com/gitlabhq/gitlabhq/issues/3120,它指出运行以下 rake:

rake gitlab:shell:setup RAILS_ENV=production

注意:参考省略了该部分RAILS_EVN=production,但这是必需的,因此您不会收到另一个错误说明cannot load such file -- rb-inotify

由于我的 git 用户没有sudo访问权限,因此我必须从另一个用户登录 sudo 运行上述命令,然后运行以下命令以将正确的权限(git)返回给 .ssh 目录:

$ sudo chgrp -R git /home/git/.ssh
$ sudo chown -R git /home/git/.ssh

毕竟,回到 GitLab 前端,删除并重新创建您的 SSH 密钥(您可以使用与以前相同的公钥)。

您应该看到正确的记录/home/git/.ssh/authorized_keys,如果您git push -v -u origin master从本地计算机运行,您现在应该很好!

于 2013-04-23T21:18:45.593 回答