Подключение к Git-репо на собственном веб-сервере с SSH

У меня есть 2 веб-сервера. На сервере ИИ есть GitLab установлены.

На сервере B I только что инициализировано пустое Git-репо.

Теперь я хочу автоматически перенести репозиторий GitLab на сервер B с помощью функции зеркалирования удаленного репозитория GitLab.

Для этого мне нужен HTTPS или SSH url, и я хочу сделать это с SSH.

Вопрос 1: Какой URL мне нужно вставить туда? Я думаю, это должно быть что-то вроде ssh://ssh-user@server-b.com:path-to-git-repos/project.git, Это правильно?

Вопрос 2: Поскольку пользователь, подключающийся к URL-адресу, является пользователем Git GitLab, я думаю, мне нужно создать собственный ключ SSH для этого пользователя и добавить открытый ключ на мой веб-сервер. Как я могу это сделать, поскольку у пользователя Git нет прав на выполнение каких-либо действий, кроме команд Git на уровне терминала? Я предполагаю, что мне нужно создать его с пользователем root моего сервера GitLab, но как мне это сделать? Я даже не могу найти домашний каталог пользователя Git, когда я подключен как root.

1 ответ

Решение

ssh://ssh-user@server-b.com:path-to-git-repos/project.git правильный URL, если path-to-git-repos/project.git принадлежит пользователю ssh-user, и если нет других хостингов Git.

Поскольку пользователь, подключающийся к URL-адресу, является пользователем Git GitLab, я думаю, мне нужно создать собственный ключ SSH для этого пользователя и добавить открытый ключ на мой веб-сервер.

Да, необходимо создать выделенную пару закрытых / открытых ключей ssh, а открытая - на сервере B ~ssh-user/.ssh/authorized_keysВы можете скопировать это самостоятельно.
Проверьте ps -eaf|grep gitlab на сервере A: вы увидите, на какой учетной записи работает GitLab.
Создает ваши SSH ключи в учетной записи ~/.ssh папка.

Из комментариев трюк был:

  • создать пары ключей ssh ​​из учетной записи root и переместить ключи в ~git/.ssh
  • копировать ~git/.ssh/id_rsa.pub к serverB, ~ssh-user/.ssh/authorized_keys
  • проверить соединение ssh из учетной записи root (поскольку учетная запись 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
    

И зеркалирование может начать работать.

Другие вопросы по тегам