为什么ssh连接到gitlab不起作用(http推送和克隆工作正常)?

use*_*943 10 ssh ubuntu gitlab

我在一台旧电脑上运行x86 raring ringtail并安装了bitnami gitlab 5.3.

尝试在SSH模式下推送第一个主分支时,这是我的错误消息:

fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Run Code Online (Sandbox Code Playgroud)

(它在http协议中使用gitlab web仪表板凭据)

  1. 我已经bitnami-installer.runroot用户一起启动,所以我认为所有文件都进入/opt而不是/home(这是一个很好的程序?)
  2. git在安装GitLab之前我没有用户,因为我听说它可能会混淆.ssh/authorized_keys文件和其他权限.
  3. 当我运行ssh -T git@my-server.com它说permission denied (public key)但我客户端计算机上的pub键也在.ssh/authorized_keys
  4. authorized_keys 对于每一行,也有适当的内容:

    command= "/opt/gitlab/apps/"
    
    Run Code Online (Sandbox Code Playgroud)
  5. 我也注意到我无法authorized_keys用a 显示文件的内容sudo -su git nano authorized_keys:

    用户不在sudoers文件中.

  6. 但每次验证的sudo /opt/gitlab/apps/gitlab/gitlab-shell/bin/check回报ok(gitlab api,acces,repo和/home/git/.ssh/authorized_keysfile(因为我已经在config.yml gitlab_url中设置为:http://myserver.com/gitlab (本地服务器ip地址)而不是http:// loopbackaddress. com/gitlab).我注意到我有gitlab-shell目录的"两个版本",一个进/opt一出/home,我不知道它是否是适当的行为举止?

  7. 当我尝试ssh -Tv它似乎ssh服务器甚至不接受我的密钥,无法验证并最终返回«权限被拒绝».
  8. /var/log/auth.log除了s之外的文件也没什么特别的shd[number] : connection closed by IP address.
  9. authorized_keys文件路径设置为文件中的正确绝对URL /etc/ssh/sshd_config(/home/git/.ssh/authorized_keys)
  10. 最后我无法使用«bundle exec bin/rake»进行调试,因为我无法让我的ubuntu安装所有必需的pacakge来执行bundle.

我几乎可以确定它是一个简单的ssh配置错误或者command="/opt/...../gitlab-shell"在authorized_keys文件中调用时出错了

PS:使用带有HTTP protocole的git对我的家庭服务器来说已经足够了,但是gitlab仪表板的兴趣在于通过填写Web表单中的ssh密钥并在之后使用ssh来轻松添加贡献者

小智 5

我尝试通过新安装的gitlab中的ssh克隆repo时出现以下错误:

致命:无法从远程存储库读取.

请确保您具有正确的访问权限并且存储库存在.

解决方案可在https://github.com/gitlabhq/gitlab-public-wiki/wiki/Trouble-Shooting-Guide#ssh找到

检查ssh log /var/log/auth.log,如果发现错误:

User git not allowed because account is locked
Run Code Online (Sandbox Code Playgroud)

然后编辑/etc/shadow和更改git:!: to git:*:

PS在我的案例中,CentOS 6.5是/ var/log/secure和git:!!:


ala*_*ree 0

检查 .ssh 文件夹的权限。

以 git 用户身份登录并设置

sudo su - git
chmod 700 ~/.ssh
chmod 600 ~/authorized_keys
Run Code Online (Sandbox Code Playgroud)

如果仍有问题,请使用 ssh 的详细输出来获取更多信息

ssh -v  ssh -T git@my-server.com
Run Code Online (Sandbox Code Playgroud)

(如果启用并强制执行 selinux,也可能是 selinux 上下文问题,请参阅此博客