如何ssh到多个防火墙后面的远程服务器?

时间:2010-12-31 03:15:02

标签: ssh scp

这是我的情况

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

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

1 个答案:

答案 0 :(得分:1)

您希望将SSH tunnels设置为允许这样的SSH:

A => B
B => C

以下是如何在Linux上通过A设置隧道的示例:

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,这也很有用。我这样做是因为我的网络流量看起来像是来自我的大学,所以我可以使用在线访问科学期刊。

参考文献: