如何使用 SSH“动态转发”(-D)在 VPN 后面的盒子上进行 apt-get update/install?可能吗?

如何使用 SSH“动态转发”(-D)在 VPN 后面的盒子上进行 apt-get update/install?可能吗?

我的 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 选项保留环境变量。

$ 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

方法:

  1. 伪造 get.docker.com 的 IP
  2. SSH 隧道从外部链接到 get.docker.com 的端口。

程序:

  1. 将 get.docker.com 添加到 /etc/hosts

    cat "127.0.0.1  get.docker.com" >> /etc/hosts
    
  2. 通过 SSH 连接到未屏蔽的盒子并转发。必须使用须藤因为我们将转发低于 1024 的端口。

    sudo ssh -L 443:get.docker.com:443 user@myhomepc
    
  3. 在另一个终端上,照常安装所有内容。

哦,完成后记得删除 /etc/hosts 上添加的行。

相关内容