我在使用 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