使用SSH连接到自己的web服务器上的Git repo
我有两台网络服务器。在服务器A上,我安装了一个使用SSH连接到自己的web服务器上的Git repo,git,ssh,gitlab,Git,Ssh,Gitlab,我有两台网络服务器。在服务器A上,我安装了一个GitLab 在服务器B上,我刚刚初始化了一个裸Git repo 现在,我想使用 为此,我需要一个HTTPS或SSH url,我想用SSH来实现 问题1:我需要在那里插入什么url?我想应该是ssh://ssh-user@server-b.com:git repos/project.git的路径。是这样吗 问题2:由于连接到url的用户是GitLab的Git用户,我想我需要为该用户创建自己的SSH密钥,并将公钥添加到我的web服务器。既然Git用户除
GitLab
在服务器B上,我刚刚初始化了一个裸Git repo
现在,我想使用
为此,我需要一个HTTPS或SSH url,我想用SSH来实现
问题1:我需要在那里插入什么url?我想应该是ssh://ssh-user@server-b.com:git repos/project.git的路径
。是这样吗
问题2:由于连接到url的用户是GitLab的Git用户,我想我需要为该用户创建自己的SSH密钥,并将公钥添加到我的web服务器。既然Git用户除了在终端级别上使用Git命令外,没有任何权限执行任何操作,我该怎么做呢?我想我需要用我的GitLab服务器的根用户创建它,但是我该怎么做呢?当我以root用户身份连接时,我甚至找不到Git用户的home dir。
ssh://ssh-user@server-b.com:git repos/project的路径。如果git repos/project.git
的路径由用户ssh user拥有,并且没有其他git托管服务,则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\u rsa.pub
,serverB
~ssh user/.ssh/authorized\u密钥
- 从根帐户测试ssh连接(因为git帐户仅限于GitLab命令)
~root/.ssh/known\u hosts
文件,然后将其复制到~git/.ssh/known\u hosts
- 要使用SSH URL,请执行以下操作:
ssh://ssh-user@server-b.com/absolute/path-to-git-repos/project.git
镜像可以开始工作。好的,那么我的想法是对的。我通过键入
echo~git
找到了git用户的home dir,它实际上是/var/opt/gitlab
。但是当我与根用户连接时,它仍然会为根用户创建一个密钥(当我选中/var/opt/gitlab/git.pub
时,它以结尾)root@server-a
)。如何为那里的git用户生成SSH密钥?@Froxx密钥的结尾并不重要。重要的是它归git所有,右边是chmod 600
,默认名称是id\u rsa
。正如我提到的那样,id\u rsa.pub
内容是通过serverB复制的。然后它可能会起作用,除非GitLab决定强制执行其文档中所说的内容,即存储库必须首先通过http://
或https://
或git://
@Froxx访问,否则URL必须使用绝对路径:ssh://ssh-user@server-b.com/absolute/path to git repos/project.git
(注意“/
”而不是“:
”)。其次,首先测试您的SSH连接(作为serverA上的用户git)SSH-T SSH-user@server-b、 com
:您应该可以在那里打开连接。@Frox哦,对了。与ssh密钥本身无关,只有~git/.ssh/known_hosts
文件()。能否将~root/.ssh/known_hosts
复制到~git/.ssh/known_hosts
?并将chown
复制到git
,然后再试一次。@Froxx我已编辑了答案,以使注释中的各个步骤更清晰可见。
ssh://ssh-user@server-b.com/absolute/path-to-git-repos/project.git