git - 使用 SSH 连接到自己的 Web 服务器上的 Git 存储库

标签 git ssh gitlab

我有 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 文件夹。

从评论来看,诀窍是:
  • 从 root 帐户生成 ssh key 对,并将 key 移动到 ~git/.ssh
  • 复制~git/.ssh/id_rsa.pub转至 serverB , ~ssh-user/.ssh/authorized_keys
  • 从 root 帐户测试 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
    

  • 并且镜像可以开始工作。

    关于git - 使用 SSH 连接到自己的 Web 服务器上的 Git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226479/

    相关文章:

    node.js - 每次更改分支时如何避免 npm install?

    linux - 拒绝访问 apache 拥有的文件

    python - 是否有用于创建多 ssh 连接的 python 库/模块?

    git - gitlab 中的 2 个帐户的 ssh 不起作用

    xcode - 删除 Xcode 项目的源代码管理

    git - 在 Bitbucket 中显示 PR 构建状态

    git - 不使用暂存区创建树

    java - 将 Google Directory API 与 SSH 隧道结合使用

    docker - 如何在 Gitlab-CI Runner 上下文中连接到 Apache?

    git - 使用 gitlab 自定义接收后 Hook