Невозможно клонировать git через туннель SSH - PullRequest
0 голосов
/ 07 июня 2018

TLDR

Я пытаюсь подключиться через ssh туннель с моей машины linux к машине OSx, которая имеет доступ к моей VPN.Это URL, к которому мне нужен доступ github.someprivateurl.net.

Фактическая проблема в деталях.

Настройка туннеля

hutber@hutber ~ $ ssh -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18
Password:
Last login: Thu Jun  7 01:00:34 2018 from 192.168.1.3
hutber@Jamies-Mac ~ $ 
hutber@Jamies-Mac ~/www/jamie $ git clone ssh://git@github.someprivateurl.net/Mortgages/mortgages.git
Cloning into 'mortgages-ui'...
remote: Counting objects: 63823, done.
remote: Compressing objects: 100% (52/52), done.
^Cfatal: The remote end hung up unexpectedlyMiB | 8.44 MiB/s  

^ только для того, чтобы показать, что когда ssh'd в OSx IЯ могу клонировать на этой машине.

Доступ к туннелю

hutber@hutber /var/www $ git clone ssh://git@github.someprivateurl.net:3333/Mortgages/mortgages-ui.git


Cloning into 'mortgages-ui'... 

Вышеупомянутый клон на моем компьютере с Linux будет зависать, пока соединение не поймет, что оно не имеетдоступ и выбрасывает меня.

Я не уверен, насколько это полезно ... Но я не могу добраться до сайта, который пытаюсь клонировать, так что это явно не имеет ничего общего с git:

OSx

hutber@Jamies-Mac ~/www/jamie $ ping github.someprivateurl.net
PING github.someprivateurl.net (10.113.188.195): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^Z
[1]+  Stopped                 ping github.someprivateurl.net

Linux

hutber@hutber /var/www $ ping -p 3333 github.someprivateurl.net
PATTERN: 0x3333
PING github.someprivateurl.net (159.34.88.181) 56(84) bytes of data.
From 172.16.24.82 icmp_seq=1 Time to live exceeded
From 172.16.24.82 icmp_seq=2 Time to live exceeded
From 172.16.24.82 icmp_seq=3 Time to live exceeded
From 172.16.24.82 icmp_seq=4 Time to live exceeded
^C
--- github.someprivateurl.net ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3004ms

Как я могу клонировать репо на моем компьютере с Linux, пока ssh'd в OSx?

Обновление

Поскольку я считаю, что это просто ошибка SSH.Я должен упомянуть, что SSh на самом деле через хост на гостевой SSH.У моего гостя есть подключение только к хосту, и он подключен к Интернету через собственный физический ключ Wi-Fi.Это соединение Wi-Fi, которое настраивает VPN.


hutber@hutber ~ $ ssh -fNT -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18
Password:
hutber@hutber /var/www $ ssh -p 3333 github.someprivateurl.net
^C //Hangs
hutber@hutber /var/www $ telnet localhost 3333
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-libssh_0.7.0
^^
Connection closed by foreign host.

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

$ ping -p 3333 github.someprivateurl.net

-p не означает порт для проверки связи.Это значит ... что-то еще.Так что это не проверка, открыт ли порт 3333, вы просто странным образом пропингуете машину.

Ваш неверный URL-адрес git ssh.Вместо того чтобы использовать порт 3333 на удаленном хосте, к которому вы туннелируете, вы должны указать ему использовать порт 3333 локального хоста.

git clone ssh://git@localhost:3333/Mortgages/mortgages-ui.git

Как и в большинстве проблем git + ssh, проще всего их отладить как sshпроблемы.Во-первых, нужно попробовать подключиться к порту 3333.

ssh -p 3333 localhost

Я подозреваю, что это не сработает.После этого отладьте проблему ssh как обычно.

Я подозреваю, что ваш туннель на самом деле не работает, потому что ваш туннель отключился, как только вы вышли из сеанса ssh, который он открыл.Вам нужны дополнительные флаги, чтобы он сохранился как туннель.В частности ...

  • -f, чтобы сказать ssh немедленно перейти в фоновый режим
  • -N, чтобы он не пытался выполнить удаленную команду
  • -T чтобы не выделять псевдотерминал, введите ручку

Итак, это ...

ssh -fNT -L 3333:github.someprivateurl.net:22 hutber@192.168.1.18

Вы также можете захотеть использовать autossh, чтобы поддерживать связь для вас.

0 голосов
/ 07 июня 2018

-Попробуйте заменить протокол git на https.

-Загрузить zip-файл на локальный компьютер и скопировать его на свой сервер.

-Удалить туннель.тоже не имеет смысла.Вы можете просто войти в него.Или настройте VPN с вашего текущего компьютера.Вот для чего нужен vpn.

...