Как использовать SSH "динамическая пересылка" (-D) для apt-get update/install на коробке за VPN? Является ли это возможным?
Я получил серверную коробку Ubuntu, заключенную в тюрьму за VPN. Шлюз каким-то образом исправляет сертификаты, поэтому все мои соединения https отображаются как "сбойные"
$ curl https://www.google.com
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: http://curl.haxx.se/docs/sslcerts.html
Мои CA-сертификаты обновлены. Это не проблема.
Мне нужно настроить временный прокси-сервер, который может обрабатывать https для обновления коробки.
Я пытался сделать ssh -D 8080 user@my_home_pc
туннелировать. NETstat сообщает об открытии порта:
$ netstat -ntl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN <---
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
APT использует переменную среды https_proxy. Опция Sudo -E сохраняет переменные env.
$ https_proxy=https://localhost:8080 sudo -E apt-get update
Ign https://get.docker.com docker InRelease
Ign https://get.docker.com docker Release.gpg
Ign https://get.docker.com docker Release
Ign https://get.docker.com docker/main i386 Packages/DiffIndex
Ign https://get.docker.com docker/main Translation-en
Err https://get.docker.com docker/main i386 Packages <----
Proxy CONNECT aborted <----
Что бы вы сделали, чтобы настроить прокси туннелируемый ssh? Учтите, что я могу ТОЛЬКО выйти на улицу через ssh (кроме неиспользуемого шлюза). СПАСИБО.
Изменить: AllowTcpForwarding установлен на да на моем домашнем ПК
# /etc/ssh/sshd_config
AllowTcpForwarding yes
1 ответ
ЭТОТ ОТВЕТ НЕ СЧИТАЕТСЯ, ЧТОБЫ ОТВЕТИТЬ, НО ВРЕМЯ.
Не окончательный, но обходной путь.
В этом случае недоступный сайт - https://get.docker.com/
Подход:
- Поддельный IP-адрес get.docker.com
- Туннель SSH и свяжите порт с get.docker.com снаружи.
Процедура:
Добавьте get.docker.com в / etc / hosts
cat "127.0.0.1 get.docker.com" >> /etc/hosts
SSH выходит в клетку без клетки и вперед. Это должно быть сделано с помощью sudo, так как мы будем переадресовывать порт ниже 1024.
sudo ssh -L 443:get.docker.com:443 user@myhomepc
На другом терминале установите все как обычно.
О, и не забудьте стереть добавленную строку в / etc / hosts, когда закончите.