使用SSH

时间:2018-07-07 19:46:55

标签: git ssh gitlab

我有2台Web服务器。在服务器A上,我安装了GitLab

在服务器B上,我刚刚初始化了一个裸Git存储库。

现在,我想使用GitLab's remote repository mirror function

将GitLab存储库自动推送到服务器B

为此,我需要一个HTTPS或SSH URL,并且我想使用SSH。

问题1:我需要在此处插入什么网址?我想应该是ssh://ssh-user@server-b.com:path-to-git-repos/project.git之类的东西。是吗?

问题2:由于连接到该网址的用户是GitLab的Git用户,因此我想我需要为此用户创建一个自己的SSH密钥并将公用密钥添加到我的Web服务器。由于Git用户无权执行任何操作(终端级别的Git命令除外),我该怎么办?我想我需要使用GitLab服务器的root用户创建它,但是我该怎么做?当我以root身份连接时,我什至找不到Git用户的主目录。

1 个答案:

答案 0 :(得分:1)

如果ssh://ssh-user@server-b.com:path-to-git-repos/project.git由用户ssh-user拥有,并且没有其他Git托管服务,则

path-to-git-repos/project.git是正确的URL。

  

由于连接到该URL的用户是GitLab的Git用户,所以我想我需要为此用户创建一个自己的SSH密钥并将公用密钥添加到我的Web服务器。

是的,需要创建专用的私钥/公用ssh密钥对,而公用密钥对将进入serverB ~ssh-user/.ssh/authorized_keys:您可以自己复制它。
在服务器A上检查ps -eaf|grep gitlab:您将看到哪个帐户正在运行GitLab。
在帐户~/.ssh文件夹中创建您的SSH密钥。

根据评论,诀窍是:

  • 从根帐户生成ssh密钥对,然后将密钥移至~git/.ssh
  • ~git/.ssh/id_rsa.pub复制到serverB~ssh-user/.ssh/authorized_keys
  • 从根帐户测试ssh连接(因为git帐户仅限于GitLab命令)

    ssh -i ~git/.ssh/id_rsa ssh-user@serverB
    

具有填充~root/.ssh/known_hosts文件的副作用,然后可以将其复制到~git/.ssh/known_hosts

  • 以使用SSH URL:

    ssh://ssh-user@server-b.com/absolute/path-to-git-repos/project.git
    

镜像即可开始工作。