gitlab -> git push -u origin master ->access denied, fatal: 远端意外挂断

gitlab -> git push -u origin master ->access denied, fatal: The remote end hung up unexpectedly

我正在使用 gitlab 来管理 git 连接。这是我的问题:

root@ubuntu:/tmp/test1/test1# git push -u origin master
Access denied.
fatal: The remote end hung up unexpectedly

我也查了gitlab-shell.log,这里是内容:

W, [2015-01-13T16:47:13.252992 #26662]  WARN -- : gitlab-shell: Access denied for git command <git-receive-pack 'Jianyong/test1.git'> by user with key key-8.

我的主机是 运行 CentOS 6.6,这是我的 gitlab 环境:

System information
System:     CentOS release 6.6 (Final)
Current User:   root
Using RVM:  no
Ruby Version:   2.0.0p353
Gem Version:    2.0.14
Bundler Version:1.7.12
Rake Version:   10.1.0

GitLab information
Version:    6.4.3
Revision:   3173626    
Directory:  /home/git/gitlab 
DB Adapter: mysql2
URL:        http://gitlab.glodon-ci.com
HTTP Clone URL: http://gitlab.glodon-ci.com/some-project.git
SSH Clone URL:  git@gitlab.glodon-ci.com:some-project.git
Using LDAP: no
Using Omniauth: no

GitLab Shell
Version:    1.9.6
Repositories:   /home/git/repositories/
Hooks:      /home/git/gitlab-shell/hooks/
Git:        /usr/bin/git

那我也试了:

ssh -T git@gitlab.glodon-ci.com

它记录了 'Welcome to Gitlab, admin!'

怎么了?

折腾了几天,终于解决了。 注意gitlab的几个方面。这是:

  1. 如果您使用了 apache 反向代理,您应该编辑 /home/git/gitlab-shell/config.yml
    gitlab_url = "http://youraddress:port"
  2. 如果你用过centos或radhat os,它使用了selinux机制,你应该把它从enforcing改为permissive。
  3. 确保您已使用用户名和电子邮件将 public 密钥粘贴到 gitlab。
  4. 确保你的gitlab、gitlab-shell、redis服务运行正常。如果这些效果不佳,您应该阅读日志文件以获取一些有用的信息。
  5. 然后,如果您编辑了一些配置文件,您应该重新启动服务。别忘了。