10

我在旧电脑上运行 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.

(它使用 gitlab 网络仪表板凭据在 http 协议中工作)

  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/"
    
  5. 我还注意到我无法authorized_keys使用 a 显示文件的内容,sudo -su git nano authorized_keys因为:

    用户不在 sudoers 文件中。

  6. 但是每次验证都会sudo /opt/gitlab/apps/gitlab/gitlab-shell/bin/check返回ok(gitlab api、访问权限、repo 和/home/git/.ssh/authorized_keys文件(因为我在 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 协议的 git 对我的家庭服务器来说就足够了,但 gitlab 仪表板的兴趣是通过在 Web 表单中填写 ssh 密钥并在之后使用 ssh 轻松添加贡献者

4

4 回答 4

5

我在尝试通过 ssh 从新安装的 gitlab 克隆 repo 时遇到以下错误:

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

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

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

检查 ssh 日志 /var/log/auth.log 是否发现错误:

User git not allowed because account is locked

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

PS 在我的 CentOS 6.5 上,它是 /var/log/secure 和 git:!!:

于 2014-08-23T20:49:54.687 回答
1

我有同样的错误。搜索并尝试了很多方法。它没有用。然后,我在这个网站 [ http://georgik.sinusgear.com 1中找到了答案。它对我有用。

我的 gitlab 的版本是 6.6.4。

执行以下操作:

  1. 找到端口独角兽运行:

    sudo emacs /home/git/gitlab/config/unicorn.rb

滚动到 # 监听 Unix 域套接字和 TCP 端口,发现:listen "127.0.0.1:port", :tcp_nopush => true

  1. 编辑 config.yml

    sudo emacs /home/git/gitlab-shell/config.yml

更改 gitlab_url:“您的域”

gitlab_url:“127.0.0.1:[端口]”

重启 gitlab

sudo 服务 gitlab 停止

sudo 服务 gitlab 启动

于 2014-08-06T09:38:54.820 回答
0

我需要将我的公钥添加到 /home/git/repositories/.ssh/authorized_keys。/home/git/.ssh 中的 authoried_keys 似乎没有被使用。

  1. 将您的公钥添加到 authorized_keys

    cat id_rsa.pub >> /home/git/repositories/.ssh/authorized_keys
    
  2. 确保 git 是文件的所有者

    chown git /home/git/repositories/.ssh/authorized_keys
    
  3. 确保组是 git

    chgrp git /home/git/repositories/.ssh/authorized_keys
    
  4. 设置文件模式位

    chmod 600 /home/git/repositories/.ssh/authorized_keys
    
于 2014-03-30T17:53:13.527 回答
0

检查 .ssh 文件夹的权限。

以 git 用户身份登录并设置为

sudo su - git
chmod 700 ~/.ssh
chmod 600 ~/authorized_keys

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

ssh -v  ssh -T git@my-server.com

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

于 2014-01-03T11:42:07.023 回答