#git #ssh #proxy #ssh-tunnel
#git #ssh #прокси #ssh-туннель
Вопрос:
Среда: мой локальный хост имеет доступ к моей VPN. Моему удаленному хосту необходимо получить доступ к VPN через мой локальный хост. Я могу использовать ssh только с локального хоста на удаленный. Я настроил туннель для доступа к оболочке на моем удаленном хостинге.
У меня есть настройка ssh с локального хоста на удаленный хост с использованием ключей и без запроса пароля.
Это позволяет мне запускать VNC с локального хоста для доступа к моему удаленному хосту.
Проблема: на моем удаленном хостинге есть репозитории git, которые необходимо обновить, но через VPN локального хоста. т.Е. Когда я выполняю на удаленном хосте git pull
команду a, он получит доступ к репозиторию VPN git через туннель, созданный с локального хоста.
Я читал о ssh -R
том, что в ssh .config есть ProxyCommand, но в целом это беспорядок.
Ответ №1:
Вы могли бы использовать RemoteForward
опцию в своем .ssh/config
HOST remoteHost
hostname remotehost.somewhere.com
user <username>
RemoteForward 127.0.0.1:2022 <VPN-GitHost>:22
Это публикует порт 22 из вашей VPN на ваш удаленный хост, но изменяет номер порта на 2022.
На вашем удаленном хосте вы можете использовать этот порт через ssh (а также git), например
ssh myuser@localhost -p 2022
Или отредактируйте файл .ssh/config на удаленном хосте
HOST VPN-gitHost
hostname localhost
port 2022
Тогда ваш git pull
должен работать без каких-либо изменений
Комментарии:
1. джеб, это сработало! Спасибо и за объяснение. Мне предлагается ввести мою парольную фразу, когда я нажимаю сейчас. Директива IdentityFile с и без ForwardAgent не работает. Это последняя часть моей головоломки.
2. Все работает с ForwardAgent, используемым в конфигурации на localhost.
3. @Harry Для другого вопроса вы должны задать новый. Раздел комментариев для этого не подходит