无法使用ssh从gitlab克隆

时间:2019-01-02 03:01:13

标签: ubuntu ssh gitlab

我已经在DigitalOcean上安装了我的GitLab(GitServer),并且运行正常。我还在DigitalOcean上有一个LAMP堆栈(WebServer),它运行正常。

我可以成功地将GitServer中的任何存储库克隆到计算机中,我已将ssh密钥添加到GitServer中。

我还已将WebServer的SSH密钥添加到我的GitServer中,但无法从中克隆。

这就是我得到的:

sudo git clone git@GitServer:group/repo.git
Cloning into 'repo'...
git@GitServer: Permission denied (publickey).
fatal: Could not read from remote repository.

也许我错过了一些东西,我没有运气就看了很多教程。

感谢您的帮助。

编辑-所有反馈都在我的答案之后

请注意,我使用的命令是:

sudo git clone git@GitServer:group/repo.git

我添加到服务器的SSH密钥是用户的SSH密钥。为根用户创建一对新密钥并将其添加到我的GitServer之后,不再出现权限被拒绝(publickey)问题。

这将通过以下方法解决:将您的用户添加到www-data组并为/ var / www /文件夹提供正确的权限(并且不使用sudo进行克隆),或者仅使用sudo并将根的SSH密钥添加到服务器,就像我最后做的一样。

感谢所有反馈。

2 个答案:

答案 0 :(得分:0)

这似乎是权限问题。

您的ssh密钥未经授权-Permission denied (publickey)

您需要创建一个公用ssh密钥,然后再次添加ssh公用密钥,删除较旧的密钥。

答案 1 :(得分:0)

  

我需要在WebServer中拥有一个git用户吗?

这就是git@GitServer的意思:“以用户GitServer的身份连接到git”。
您的GitLab服务器应以用户git的身份运行。

这也意味着必须将您的公钥添加到~git/.ssh/authorized_keys中,以进行任何与SSH相关的操作。
当您将密钥添加到个人资料时,应该由远程服务器上的GitLab自动完成。

检查ssh -Tv git@GitServer的输出;您should see a Welcome message

使用sudo意味着您的公钥/私钥必须在/root/.ssh中,以便sudo git clone git@...命令成功完成ssh会话。