клон мерзавца ssh различие в синтаксисе?

Установка

Существует хост (H1), работающий gitlab-ce сервер мерзавца в контейнере докера (C1). Сервер OpenSSH хоста работает на порте 22 и обеспечивает ключ хоста keyH. gitlab контейнер предоставляет свою собственную услугу SSH, которая публикуется для хостинга как 10022:22 и обеспечивает собственный ключ хоста keyC.

Проблема

В отдельной клиентской системе, при вызове git clone git@H1:10022/<group>/<project> Я ожидаю делать пересадку к серверу SSH в контейнерном C1. Действительно, я только делаю пересадку для хостинга H1, и я получаю представленный keyH (кажется, что порт 22 из хоста используется для клонирования). Из причины, которая приводит к неудавшемуся клону.

Но

Обычно (от того же клиента) получение по запросу и продвижение формы этот dockerized сервер мерзавца работает при определении удаленного как:

git remote -v
origin  ssh://git@H1:10022/group/project.git (fetch)
origin  ssh://git@H1:10022/group/project.git (push)

Таким образом, это кажется, существует различие в протоколе между ssh://git@H1... и git@H1.... Но я думаю, что мерзавец связывается через HTTP (S) или SSH, только? Каково различие/проблема здесь?

Платформа

  • Ubuntu 14.04.2 (сегодняшний восходящий уровень установки патча)
  • клиент мерзавца 1.9.1
  • gitlab 7.13-стабильный чиновник Dockerfile
2
задан 30 July 2015 в 15:56
1 ответ

Из git-clone (1):

GIT URLS
...
       The following syntaxes may be used with them:

       o   ssh://[user@]host.xz[:port]/path/to/repo.git/
...
       An alternative scp-like syntax may also be used with the ssh protocol:

       o   [user@]host.xz:path/to/repo.git/

В синтаксисе, подобном scp, нет никакого способа указать альтернативный порт. scp поддерживает выбор порта с помощью параметра -P , но этот параметр не был перенесен в инструменты git.

Синтаксис user @ host: path scp является имитацией rcp, а rcp появился раньше Интернета, поэтому не следует соглашениям об URL. Это только случайно выглядит так, будто бессхемный (скрытый) указывает пользователя git на хосте H1 и относительный путь 10022 / group / project.git из домашнего каталога этого пользователя.

Чтобы получить доступ к ssh-серверу на порту 10022, вам нужно будет использовать синтаксис ssh: // .

2
ответ дан 3 December 2019 в 11:36

Теги

Похожие вопросы