我现在有这样的情况:
我有三台机器。把它们称为:
- 主机-客户端:Windows 7 在 Cygwin 下运行 OpenSSH 6.0p1 客户端
- 主机-ssh-跳转-服务器:Windows 7 在 Cygwin 下运行 OpenSSH 6.0p1 服务器
- 主机-服务器:Debian 8.9 运行 OpenSSH 6.7p1 服务器,并在端口上运行 http 服务器8080
主机-客户端开启SOCKS5代理如下:
ssh -D localhost:1080 -N my-username@host-ssh-jump-server
在主机-客户端,网络浏览器配置为使用 SOCKS5 代理本地主机:1080。
用户浏览运行于主机-服务器从主机-客户端在浏览器中输入以下 URL:
http://host-server:8080
问题在于主机-客户端和主机-服务器在之间的跳跃中未加密主机-ssh-跳转-服务器和主机-服务器。
目前,正在运行 HTTPS主机-服务器不是一个选择。我需要一个权宜之计。我需要将 SSH 隧道一直延伸到主机-服务器。
为了最大限度地减少对用户的干扰,我想通过以下限制来实现这一点:
- 不要更改他们创建的 SOCKS5 代理主机-客户端。
- 不要更改他们浏览的 URL主机-服务器,可能除了端口号。
- 其他(不相关的)应用程序会遍历 SOCKS5 代理。它们一定不能受到干扰。
- 任何新创建的隧道都需要将监听端口绑定到本地主机为了安全。
我该怎么做才能做到这一点,或者这是不可能的吗?
答案1
ssh -L localhost:1080:localhost:1080 my-username@host-ssh-jump-server -t 'ssh -N -D localhost:1080 root@host-server'