我有 2 个网络服务器。在服务器 A 上,我有一个 GitLab
安装。
在服务器 B 上,我刚刚初始化了一个裸 Git 存储库。
现在我想使用 GitLab's remote repository mirror function 自动将 GitLab 存储库推送到服务器 B
为此,我需要一个 HTTPS 或 SSH url,并且我想使用 SSH 来完成。
问题一:我需要在那里插入的网址是什么?我想应该是 ssh://ssh-user@server-b.com:path-to-git-repos/project.git
.是对的吗?
问题二:由于连接到 url 的用户是 GitLab 的 Git 用户,我想我需要为这个用户创建一个自己的 SSH key 并将公钥添加到我的 Web 服务器。由于 Git 用户除了终端级别的 Git 命令外无权执行任何操作,我该如何执行此操作?我想我需要用我的 GitLab 服务器的 root 用户创建它,但我该怎么做呢?当我以 root 身份连接时,我什至找不到 Git 用户的主目录。
最佳答案
ssh://ssh-user@server-b.com:path-to-git-repos/project.git
如果 path-to-git-repos/project.git
是正确的 URL归用户 ssh-user 所有,如果没有其他 Git 托管服务。
Since the user connecting to the url is GitLab's Git user, I guess I need to create an own SSH key for this user and add the public key to my web server.
是的,需要创建一个专用的私有(private)/公共(public) ssh key 对,公共(public) key 对去 serverB
~ssh-user/.ssh/authorized_keys
: 你可以自己复制。查看
ps -eaf|grep gitlab
在服务器 A 上:您将看到哪个帐户正在运行 GitLab。在帐户
~/.ssh
中创建您的 SSH key 文件夹。从评论来看,诀窍是:
~git/.ssh
~git/.ssh/id_rsa.pub
转至 serverB
, ~ssh-user/.ssh/authorized_keys
ssh -i ~git/.ssh/id_rsa ssh-user@serverB
这有填写
~root/.ssh/known_hosts
的副作用。文件,然后可以复制到 ~git/.ssh/known_hosts
ssh://ssh-user@server-b.com/absolute/path-to-git-repos/project.git
并且镜像可以开始工作。
关于git - 使用 SSH 连接到自己的 Web 服务器上的 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226479/