gitolite с нестандартным портом
для клонирования репозитория, управляемого gitolite, обычно используется следующий синтаксис
git clone gitolite@server:repository
Это говорит клиенту SSH подключиться к порту 22 сервер используя gitolite'у имя пользователя. Когда я пробую это с номером порта:
git clone gitolite@server:22:repository
Git жалуется, что репозиторий 22:репозиторий не имеется. Какой синтаксис следует использовать, если SSH-сервер использует другой порт?
2 ответов
синтаксис URL-адреса Git "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://
URLs, так как там нет дополнительной конфигурации.
если это только для вас (особенно если вы можете получить доступ к нескольким репозиториям с одного сервера), было бы неплохо иметь псевдоним хоста SSH, чтобы сохранить некоторые типы.
Это объясняется здесь очень подробно: https://github.com/sitaramc/gitolite/blob/pu/doc/ssh-troubleshooting.mkd#_appendix_4_host_aliases
использование" хоста " para в~/.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 и все будет работать.