我在Ubuntu服务器上安装了GitLab。 一切似乎工作正常,除了我不能推/拉/克隆到服务器。
当我按下时,我收到一般错误消息:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我已经尝试了几个小时的谷歌搜索,但我似乎找不到问题。
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
运行良好,全面确定!
我可以通过SSH连接到git@adress.adress 我明白了:
PTY allocation request failed on channel 0
Welcome to GitLab, Anonymous!
当我这样做时:
ssh git@adress.adress "ls /location/of/git/dir"
我明白了:
Not allowed command
网站正在运行,当我在网站上创建一个存储库时,它出现在/ home / git / repository /
中但我仍然无法推动它。
我遵循了本指南:
https://github.com/gitlabhq/gitlabhq/blob/5-0-stable/doc/install/installation.md
以及让它在apache上运行的指南:
http://shanetully.com/2012/08/running-gitlab-from-a-subdirectory-on-apache/
答案 0 :(得分:7)
经过数小时的调试后,我终于弄明白了,我知道配置有一个简单的问题。
由于第二个指南提到了如何使用相对url在apache上设置gitlab,你实际上必须在gitlab中做一些配置。 我取消了关于相对url:s unicorn.rb的行 在gitlab-shell / config中我添加了我的整个URL(带子目录)。
在:
http://web-adress.com/
后:
http://web-adress.com/subdomain/
现在效果很好。
答案 1 :(得分:4)
您可以使用下面的命令对其进行测试。当你登录时,应该说出你的名字。
ssh -T git@myserver.com
欢迎来到GitLab,Christian Hammer!
如果它说“欢迎使用GitLab,匿名!” gitlab不承认你是gitlab的用户。
答案 2 :(得分:2)
我不知道您是否已经解决了这个问题,但我发现如果我使用gitlab中使用的电子邮件地址生成密钥,则该过程有效。我采取的步骤:
ssh-keygen -t rsa -C "#email address#"
使用提供的电子邮件创建新的ssh密钥。
生成公钥/私钥RSA密钥对。
接下来只需使用下面的代码转储您的公钥并添加到GitLab SSH密钥
cat ~/.ssh/#key name#.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....*
答案 3 :(得分:2)
更准确地说明接受的答案(“4月6日17:23回答”和“Joakim Engstrom”于7月21日编辑的“7月7日”):
您最有可能处于更新Gitlab以适合您自己的上下文路径(从http://localhost/<my_context_path>
而不是http://localhost
访问它)的情况。
在how-to中,没有提到也要修改这个gitlab-shell配置文件:
// logout any Gitlab open session, stop your Gitlab service, and your possible third-party webserver first
$ sudo service apache2 stop
$ sudo service gitlab stop
// perform the modification that fixes it, if you indeed configured Gitlab to be accessed with a custom context path
$ sudo -u git -H nano ~git/gitlab-shell/config.yml
# Url to gitlab instance. Used for api calls. Should end with a slash.
-gitlab_url: "http://localhost/"
+gitlab_url: "http://localhost/<my_context_path>/"
// restart services
$ sudo service gitlab start
$ sudo service apache2 start
// Try to push again from your particular Gitlab user local repository, to the Gitlab remote repository
$ cd <path_to_my_local_repository>
$ sudo -u <OS_username_that_owns_the_local_repository> -H git push -u origin master
Counting objects: 3202, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3115/3115), done.
Writing objects: 100% (3202/3202), 11.56 MiB | 5.34 MiB/s, done.
Total 3202 (delta 609), reused 0 (delta 0)
To `git@<my_FQDN>:<my_Gitlab_user_or_group_name>/<my_gitlab_project_ID>.git`
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
$
关于“类似于stackoverflow.com/questions/13071234 / ... - Paul Verest 7月18日6:20”(Can't push to new gitlab install):
不,这不是此页面主题中的相同问题。
答案 4 :(得分:0)
在我的情况下,原因是nginx强制重定向到https。检查git用户是否可以通过运行
来使用gitlab-apisudo -u git -H /home/git/gitlab-shell/bin/check
在服务器上。就我而言,输出是
Check GitLab API access: FAILED. code: 301
我必须将gitlab_url
中的/home/git/gitlab-shell/config.yml
更改为https://<domain>
答案 5 :(得分:0)
对我来说这是因为我限制谁可以在/ etc / ssh / sshd_config中使用ssh进入我的服务器AllowUsers git