Как исправить мою конфигурацию SSH, чтобы использовать git за SSH-прокси?

Таким образом, я в настоящее время в ситуации, когда у меня есть два SSH-сервера, которые оба должны обслуживаться через порт 443 из-за маршрутизатора Linux, работающего с Tomato.

Чтобы сделать эту работу, у меня есть сервер SSH на маршрутизаторе, который действует как ретранслятор, где бы я ни захотел подключиться.

Файл .ssh/config на машине, с которой я подключаюсь, выглядит следующим образом:

 Host destination HostName <internal IP of destination behind router> User gogs Port 22 IdentityFile "<my identity file path>" ProxyCommand ssh -q relay -W %h:%p IdentitiesOnly yes Host relay HostName <my domain name> User relay Port 443 IdentityFile "<my identity file path>" 

Таким образом, это отлично работает для SSH, SCP и даже git clone , но буквально ни одна из других команд git, похоже, не работает.

Когда я get fetch без флага -q в ProxyCommand , он зависает в течение секунды и говорит « Killed by signal 1 .

Все другие решения, которые я видел, требуют использования разных прокси-команд, таких как команда nc или corkscrew . Маршрутизатор, который у меня есть, в значительной степени ограничен командами, с которыми он поставляется, и ни один из этих двух не доступен.

Любые идеи о том, как я могу сделать эту работу, или, по крайней мере, объяснить, почему то, что я пытаюсь сделать, не работает?

Благодаря!

Оказывается, я ошибся, и на самом деле он работал все время. Killed by signal 1 вещь нормальна в командной строке git, если вы не поставили флаг -q в SSH ProxyCommand , который у меня не был изначально.

Смятение было связано с тем, что я использовал IntelliJ IDE. IntelliJ по умолчанию использует свой собственный встроенный клиент SSH, который, бессознательно, не учитывал мой .ssh/config . При переходе на встроенную установку SSH все исправлено.