MyTetra Share
Делитесь знаниями!
Как сделать подключение к репозитарию Git через проксирующее SSH соединение
Время создания: 05.10.2017 22:55
Текстовые метки: git, ssh, proxy, прокси, windows, linux
Раздел: Компьютер - Программирование - Системы контроля версий (VCS) - Git
Запись: xintrea/mytetra_syncro/master/base/1507233316b8ui3xa6au/text.html на raw.github.com

Внимание! Возможно, весь нижеследующий текст не соответствует дествительности. Смотрите оригинальный английский текст по ссылке выше.


В Git имеется возможность подключаться к репозитарию через промежуточную Linux-машину, на которой работает SSH, и на которой есть интернет. Как это сделать, написано в данной статье.


Первое, что нужно знать, что настройки Git http.proxy не используются для настройки соединения по SSH. Вместо этого нужно создать прокирующее SSH соединение. Подробности здесь . Кратко, нужно сделать вот что:


Нужно запустить git-cmd.bat и создать файл ~/.ssh/config (Это можно сделать через Блокнот, с помощью команды notepad %home%\.ssh\config)


В данном файле нажно разместить следующие настройки:


ProxyCommand /bin/connect.exe -H proxy.server.name:3128 %h %p


Host github.com

User git

Port 22

Hostname github.com

IdentityFile "C:\users\username\.ssh\id_rsa"

TCPKeepAlive yes

IdentitiesOnly yes


Host ssh.github.com

User git

Port 443

Hostname ssh.github.com

IdentityFile "C:\users\username\.ssh\id_rsa"

TCPKeepAlive yes

IdentitiesOnly yes


В данном коде надо прописать правильное имя/IP и порт машины, на которой поднят SSH сервер. А так же нужно указать правильный путь до файла id_rsa.


Возможно, что у вас нет бинарника connect.exe. Его можно взять из сборки msysgit . Так же, готовый бинарник доступен по этой ссылке . Кроме того, в сборке MinGW он лежит по такому пути: C:\Program Files\Git\mingw64\bin\connect.exe.


После такой настройки, Github через SSH должен начать работать.


Если есть необходимость соединиться через SOCKS5-прокси, надо в настроечном файле просто поменять ключ -H на -S:


ProxyCommand connect -S proxy.server.name:1080 %h %p


Если вы используете Linux, а не Windows, то нужно проверить, чтобы на файле ~/.ssh/config стояли права 600.


Примечание: если ваш SOCKS5-proxy требует аутентификации NTLM, можно воспользоваться cntlm , а подробнее о такой настройке написано в этом обсуждении .



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования