MyTetra Share
Делитесь знаниями!
Как сделать подключение к репозитарию Git через проксирующее SSH соединение
05.10.2017
22:55
Текстовые метки: git, ssh, proxy, прокси, windows, linux
Раздел: Компьютер - Программирование - Системы контроля версий (VCS) - Git

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


В 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.52
Яндекс индекс цитирования