#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 ХОРОШО. Я отредактировал ответ соответствующим образом, чтобы добавить пример.