гитолит с нестандартным портом

Для клонирования репозитория, управляемого gitolite, обычно используется следующий синтаксис

git clone gitolite@server:repository

Это указывает клиенту SSH подключиться к порту 22 сервера, используя gitolite в качестве имени пользователя. Когда я пробую с номером порта:

git clone gitolite@server:22:repository

Git жалуется, что репозиторий 22: repository недоступен. Какой синтаксис следует использовать, если сервер SSH использует другой порт?


person Mot    schedule 07.09.2011    source источник
comment
возможный дубликат удаленного добавления git с другим портом ssh   -  person Chris Johnsen    schedule 08.09.2011


Ответы (2)


Синтаксис URL-адреса Git в стиле SCP (user@server:path) не поддерживает включение порта. Чтобы включить порт, вы должны использовать ssh:// «Git URL». Например:

ssh://gitolite@server:2222/repository

Примечание. По сравнению с gitolite@server:repository, это представляет немного другой путь репозитория к удаленному концу (абсолютный /repository вместо относительного пути repository); Gitolite принимает оба типа путей, другие системы могут отличаться.


Альтернативой является использование записи Host в вашем ~/.ssh/config (см. Ваш ssh_config (5) справочная страница). С помощью такой записи вы можете создать «псевдоним хоста SSH», который включает имя / адрес сервера, имя удаленного пользователя и номер порта, отличный от стандартного (а также любые другие параметры SSH, которые могут вам понравиться):

Host gitolite
    User     gitolite
    HostName server
    Port     2222

Затем вы можете использовать очень простые URL-адреса Git, например gitolite:repository.


Если вам нужно задокументировать (и или настроить) это для нескольких людей, я бы выбрал ssh:// URL-адресов, поскольку здесь не требуется дополнительной настройки.

Если это только для вас (особенно если вы можете получить доступ к нескольким репозиториям с одного и того же сервера), было бы неплохо иметь псевдоним SSH-хоста, чтобы сэкономить время на вводе.

person Chris Johnsen    schedule 08.09.2011

Это подробно объясняется здесь: https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd#_appendix_4_host_aliases.

Использование параметра "host" в ~ / .ssh / config позволяет вам красиво инкапсулировать все это в ssh и дать ему короткое, легко запоминающееся имя. Пример:

host gitolite
    user git
    hostname a.long.server.name.or.annoying.IP.address
    port 22
    identityfile ~/.ssh/id_rsa

Теперь вы можете просто использовать одно слово gitolite (которое является псевдонимом хоста, который мы определили здесь), и ssh выведет все эти данные, определенные в нем - просто скажите ssh gitolite и git clone gitolite: reponame, и все будет работать.

person Kostas Maragos    schedule 06.10.2011