Gitlab 无法使用 SSH 密钥

Gitlab 无法使用 SSH 密钥

我在使用 Gitlab 时遇到了问题。我使用以下指南来安装和配置 Gitlabhttps://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md。安装似乎一切顺利。Web 应用程序似乎运行良好。但是我无法克隆、拉取、推送,基本上我无法使用 Gitlab。当我尝试通过 SSH 克隆时,我看到 HTTP 出现 403 错误,权限被拒绝。

我已确保我的私钥在 Windows 和 OS X 上均正确设置。我可以在服务器上看到公钥。我在 ~/.ssh.config 中的配置文件中添加了以下内容

Host {hostname}
    User git
    Hostname {hostname}
    PreferredAuthentications publickey
    IdentityFile C:/Users/{username}/.ssh/id_rsa

这是我在 /var/log/secure 中看到的内容

Jan 14 17:31:48 dev_version_control sshd[3696]: Connection closed by 192.168.17.113
Jan 14 17:32:18 dev_version_control sshd[3700]: Connection closed by 192.168.17.113

当我尝试使用 git 或 ssh 时,它/var/log/message不起作用

我不知道接下来该去哪里。有什么建议吗?

我不知道你说的使用 git 用户名进行 SSH 是什么意思。我使用的指南没有为 git 用户创建密码,并指出该用户不能用于登录。

答案1

假设您已在客户端上加载了私钥,那么这听起来可能是“git”用户主目录和.ssh 目录的权限问题。

请尝试将您的 /home/git 目录更改为掩码 0711:

chmod 0711 /home/git

确保 /home/git/.ssh 目录的掩码为 0700:

chmod 0700 /home/git/.ssh

确保 /home/git/.ssh/authorized_keys 文件的掩码为 0600:

chmod 0600 /home/git/.ssh/authorized_keys

如果教程中“git”用户的主目录与此不同,请将 /home/git 替换为该目录。如果不是权限问题,请发表评论,我们会看看还有什么问题。

答案2

检查您的公钥(通过 Web Face 导入)是否只有一条记录,/home/git/.ssh/authorized_keys并且该密钥具有 gitlab 的前缀和标题。换句话说,如果您在安装 gitlab 之前手动添加了相同的密钥,请将其删除。

答案3

我还建议检查用户是否具有在 gitlab 中克隆/拉取/推送的适当权限。我花了太多时间查看 ssh/https 配置,而问题的原因是 gitlab 中的用户没有足够的权限...

答案4

如果主机名中有“-”,则会发生这种情况。(尽管根据RFC 952

ssh 会提示我输入任何名称中带有“-”的主机的密码。这似乎纯粹是 ssh 配置文件解析的问题,因为在 ~/.ssh/config 中添加别名(并在我的 git 远程 URL 中使用该别名)解决了该问题。

换句话说,尝试在 C:/Users/{username}/.ssh/config 中输入以下内容

Host {a}
    User git
    Hostname {a-b.domain}
    IdentityFile C:/Users/{username}/.ssh/id_rsa

并且你有一个如下形式的遥控器

origin  [email protected]:repo-name.git

删除它,然后使用表单重新添加它

origin  git@a:repo-name.git

相关内容