Гитолит с портом не по умолчанию - PullRequest
11 голосов
/ 07 сентября 2011

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

git clone gitolite@server:repository

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

git clone gitolite@server:22:repository

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

Ответы [ 2 ]

18 голосов
/ 08 сентября 2011

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

ssh://gitolite@server:2222/repository

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


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

Host gitolite
    User     gitolite
    HostName server
    Port     2222

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


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

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

2 голосов
/ 07 октября 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 и все будет работать.

...