我有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用户的主目录。
答案 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密钥。
根据评论,诀窍是:
~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
镜像即可开始工作。