【问题标题】:How to ssh to a remote server behind multiple firewalls? [closed]如何通过 ssh 连接到多个防火墙后面的远程服务器? [关闭]
【发布时间】:2010-12-31 15:01:53
【问题描述】:

这是我的情况

  • 我可以通过 ssh 从我的家用笔记本电脑访问服务器 A。
  • 服务器 B 只能通过 ssh 从服务器 A 访问。
  • 服务器 C 只能通过 ssh 从服务器 B 访问。

无论如何我可以配置我的 .ssh/config 以便我可以直接从我的笔记本电脑 ssh 到服务器 C 吗?我需要这个,因为我需要定期将文件从服务器 C 传输回我的笔记本电脑。我正在使用“scp”,但手动浏览这个 ssh 层次结构太痛苦了。我想知道是否有更直接的方法可以通过 ssh 的魔力做到这一点。

【问题讨论】:

  • 我认为你不能绕过每个ssh(除非修改代码)。我会使用rsync 而不是scp(不是说它解决了你的问题,而是......)。

标签: ssh scp


【解决方案1】:

您想设置 SSH tunnels 以允许这样的 SSH:

A => B
B => C

这是一个如何在 Linux 上通过 A 设置到 B 的隧道的示例:

ssh -f myusername@hostA -N -L 4444:hostB:22

然后,您应该能够 ssh 到 hostA 上的端口 4444,并将其转发到 hostB 上的端口 22(SSH 通常运行的地方)。运行上述命令后,试试这个:

ssh -p 4444 hostA

这应该将您连接到 hostB。您可能需要更改端口才能使其正常工作,如果 hostA 上的端口 4444 已被使用,则必须选择不同的端口。假设这可行,您可以使用具有不同主机名的相同命令从 B => C 设置隧道:

ssh -f myusername@hostA -N -L 4444:hostB:4444
ssh -f myusername@hostB -N -L 4444:hostC:22

如果您想设置SOCKS proxy 进行网页浏览,这也很有用。我这样做是为了让我的网络流量看起来像是来自我的大学,这样我就可以使用在线访问科学期刊。

参考资料:

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 2012-02-06
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 2011-02-15
    • 2011-10-06
    • 2013-04-27
    • 2022-09-25
    相关资源
    最近更新 更多