将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是啥?

Posted

技术标签:

【中文标题】将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是啥?【英文标题】:What's the best way to reverse ssh tunnel to access system behind corp firewall?将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是什么? 【发布时间】:2016-12-21 11:29:51 【问题描述】:

我正在尝试通过 ssh 访问 linux 服务器。通常这是通过使用 putty 的 Win2012 跳转服务器访问的。 我能够通过 HTTP 代理在 putty 中设置从跳转服务器到 AWS VM 的反向 ssh 连接。这应该将其转发到我的 linux 服务器。但是当我连接到我的 AWS VM 并通过我的远程端口启动 ssh 时,整个事情就挂了。我做错了什么,有没有更好/更简单的方法?没有恶意,我可以物理访问跳转服务器和 linux 服务器。只是绕过糟糕的公司防火墙。

【问题讨论】:

【参考方案1】:

你能详细解释一下你做了什么吗? 通常在 unix 系统上,对于反向 ssh 隧道,您可以在防火墙后面的服务器上执行此操作:

ssh -NR ssh_port_AWS:localhost:ssh_port_local_server user@ip_AWS

你需要更换

ssh_port_AWS 按您要用于访问本地服务器的远程服务器的端口。

ssh_port_local_server 通过本地服务器的 ssh 服务器的端口(如果您不更改任何内容,则为 22)。

user@ip_AWS 通过您的 AWS 连接详细信息 (user@IP)

【讨论】:

我不能直接从我的 linux 隧道。我必须通过跳转服务器连接。首先,我将 aws 上 443 上的所有流量转发到 22。然后在 jumpserver putty 中,我使用会话主机名 user@aws 在端口 443 连接到我的 aws。在 putty 连接设置中添加了 http 代理,通过将我的 pem 密钥转换为添加身份验证密钥ppk。在隧道部分,添加源端口 5000 和目标作为 linux_server:22 然后当我点击连接时,我会收到我的 aws 服务器的提示。这样可行。现在我用我的笔记本电脑通过 ssh 连接到我的 aws,这也可以。然后, ssh localhost:5000 应该可以工作,但不能。 这是 linux_in_firewall:22 aws 的 fwd 规则为 22

以上是关于将 ssh 隧道反向访问公司防火墙后面的系统的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用反向 SSH 隧道绕过防火墙和 NAT

通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器

SSH 到防火墙后面的服务器

需要在防火墙后面使用 git:尝试 ssh 隧道

如何配置系统通过 ssh 反向隧道/代理使用 git?

ssh隧道理解