Подключение к Github с удаленного сервера через общий Интернет

#git #ssh

Вопрос:

Я поделился своим локальным Интернетом с автономным удаленным сервером, используя эту документацию. Все работает, на удаленном сервере теперь есть интернет. Большинство вещей, таких как apt, curl и т. Д., Работают. Но когда я хочу подключиться к github с помощью команды ниже:

 ssh -T git@github.com
 

Я получаю эту ошибку:

 ssh: Could not resolve hostname github.com: Temporary failure in name resolution
 

Кто-нибудь может помочь, пожалуйста?

Комментарии:

1. Temporary failure in name resolution означает, что ваша система не смогла найти IP-адрес для github.com . Если он исчезнет сам по себе, проблем не будет: временный сбой был действительно временным. Если нет, то проблема связана с разрешением имен в вашей системе. Это вопрос для superuser.com.

2. Проблема в том, что я должен определить прокси-сервер для git для подключения к Интернету через него. Вопрос в следующем: как я мог бы определить прокси в конфигурации git?

3. Вы этого не делаете, по крайней мере, при использовании ssh. самому ssh можно сказать, чтобы он проходил через прокси-сервер. Git просто запускает ssh, чтобы получить канал, по которому он может отправлять данные. Все зависит от самого ssh, с точки зрения установления соединения.

Ответ №1:

Если curl работает, но не SSH, попробуйте хотя бы клонировать с помощью HTTPS:

 git clone https://github.com/<me>/<myRepo>
 

Затем вам, возможно, придется определить прокси ( HTTP_PROXY / HTTPS_PROXY ), если это необходимо, с NO_PROXY набором «127.0.0.1,локальный хост,.mycompany.com».

Все еще использовать ssh означало бы, как было предложено ОП:

  • git config https.proxy http://a/proxy
  • использование bryanpkc/corkscrew инструмента для туннелирования SSH через HTTP-прокси

(При условии, что это не противоречит местной ИТ-политике)

См., например, «Использование штопора для туннелирования SSH по HTTP» от Винсента Данена:

отредактируйте файл конфигурации SSH,~/. ssh/config, и добавьте:

 Host somehost
   Hostname somehost.example.com #ssh.github.com for Github
   Port 443 #443 for Github
   ProxyCommand /user/bin/corkscrew proxy.example.com 3129 %h %p
 

OpenSSH прозрачно преобразует %h в имя хоста для подключения ( somehost.example.com ) и порт для подключения (по умолчанию 22).

ProxyCommand Строка здесь говорит OpenSSH запустить программу Corkscrew, чтобы установить фактическое соединение с конечным SSH-сервером. > Вы можете создать несколько записей для всех хостов, к которым вам может потребоваться подключиться, или использовать простое регулярное выражение или глобальную звездочку (> * ) в Host строке ( * сообщит OpenSSH использовать эту Host строфу для всех подключений).

Комментарии:

1. HTTPS работает нормально. Что мне нужно, так это именно SSH! Я попытался использовать штопор, и, похоже, проблема решена путем определения прокси-сервера в конфигурации git.

2. @weera, значит, штопор работает с git config https.proxy ?

3. @weera ХОРОШО. Я отредактировал ответ соответствующим образом, чтобы добавить пример.