Подключение к 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
И зеркалирование может начать работать.