这是我的情况
- 我可以通过 ssh 从我的家用笔记本电脑访问服务器 A。
- 服务器 B 只能通过 ssh 从服务器 A 访问。
- 服务器 C 只能通过 ssh 从服务器 B 访问。
无论如何,我可以配置我的 .ssh/config 以便我可以直接从我的笔记本电脑 ssh 到服务器 C 吗?我需要这个,因为我需要定期将文件从服务器 C 传输回我的笔记本电脑。我正在使用“scp”,但手动浏览这个 ssh 层次结构太痛苦了。我想知道是否有更直接的方法可以通过 ssh 的魔力做到这一点。
您想设置SSH 隧道以允许 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 代理,这也很有用。我这样做是为了让我的网络流量看起来像是来自我的大学,这样我就可以使用在线访问科学期刊。
参考: