Подтвердить что ты не робот

Гитолит с портом не по умолчанию

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

git clone [email protected]:repository

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

git clone [email protected]:22:repository

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

4b9b3361

Ответ 1

Синтаксис URL-адреса "<стиль > Git" > не поддерживает, включая порт. Чтобы включить порт, вы должны использовать ssh:// "Git URL". Например:

ssh://[email protected]:2222/repository

Примечание. По сравнению с [email protected]:repository это представляет собой несколько иной путь репозитория к удаленному концу (абсолютный /repository вместо относительного пути repository); Гитолит принимает оба типа путей, другие системы могут различаться.


An alternative is to use a Host entry in your ~/.ssh/config (see your ssh_config(5) manpage). With such an entry, you can create an "SSH host nickname" that incorporates the server name/address, the remote user name, and the non-default port number (as well as any other SSH options you might like):

Host gitolite
    User     gitolite
    HostName server
    Port     2222

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


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

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

Ответ 2

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

Использование "host" 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 и все будет работать.