Мой провайдер VPS рекомендует оставить свой порт SSH для номера пользовательского порта, который он назначает по умолчанию (не 22). Дело в том, что хотя я знаю, что могу указать номер порта при создании удаленной конфигурации, мне кажется, что я не могу сделать то же самое при выполнении git-клона. Я использую Gitolite, поэтому я клонировать команды выглядят так:
git clone git@mydomain.com:gitolite-admin
Есть ли способ преобразовать это в использование пользовательского номера порта ssh?
Я должен также упомянуть, что я использую Cygwin на Windows. Я видел несколько мест, говорящих добавить пользовательский порт в ~/.ssh/config
файл, как
Host mydomain.com
Port 12345
однако в cygwin этот файл не существует.
git
version-control
ssh
cygwin
ryanzec
источник
источник
.ssh/config
(неconf
) в домашнем каталоге вашего пользователя. Он не требуется для базовой операции и, следовательно, не существует по умолчанию. Вы должны будете создать это. Попробуйтеvim ~/.ssh/config
(или используйте предпочитаемый текстовый редактор), чтобы открыть / создать его./Users/USERX/.ssh/config
вам нужно установитьHOME
локальную среду в/Users/USERX
.Ответы:
Обратите внимание, что номер порта должен быть указан без квадратных скобок: []
источник
git clone git@mydomain.com:[port]/gitolite-admin
git clone ssh://git@mydomain.com:port/home/user/gitolite-admin
1 в чем проблема с конфигурационным файлом ssh?
Когда файл конфигурации не существует, вы можете создать его. Кроме
port
того, файл конфигурации может включать в себя другой параметр конфигурации ssh:user
IdentityFile
и так далее, файл конфигурации выглядит так:Если вы работаете в Linux, позаботьтесь о том, чтобы файл конфигурации имел строгое разрешение: чтение / запись для пользователя и недоступность для других
2 как насчет пути ssh url?
Это круто, единственное, что мы должны знать, это то, что в git есть два синтаксиса для ssh url
ssh://[user@]host.xz[:port]/path/to/repo.git/
[user@]host.xz:path/to/repo.git/
По умолчанию Gitlab и Github будут показывать URL-адрес синтаксиса, подобный scp , и мы не можем указать пользовательский порт ssh. Поэтому для изменения порта ssh нам нужно использовать стандартный синтаксис
источник
Когда вам нужен относительный путь из вашего домашнего каталога (в любой UNIX), вы используете этот странный синтаксис:
ssh://[user@]host.xz[:port]/~[user]/path/to/repo
Например, если репозиторий находится
/home/jack/projects/jillweb
на сервере,jill.com
и вы входите в систему, какjack
приsshd
прослушивании через порт 4242:ssh://jack@jill.com:4242/~/projects/jillweb
И при входе в систему
jill
(если у вас есть права доступа к файлам):ssh://jill@jill.com:4242/~jack/projects/jillweb
источник
(Обновление: несколько лет спустя Google и Qwant «Airlines» по-прежнему отправляют меня сюда при поиске «git не-ssh-порта по умолчанию») Вероятно, лучший способ в более новых версиях git - использовать GIT_SSH_COMMAND ENV.VAR, например:
GIT_SSH_COMMAND="ssh -oPort=1234 -i ~/.ssh/myPrivate_rsa.key" \ git clone myuser@myGitRemoteServer:/my/remote/git_repo/path
Это дает дополнительное преимущество, позволяя использовать любую другую подходящую для ssh опцию (порт, priv.key, IPv6, устройство PKCS # 11, ...).
источник