将两个 ssh 跳转放入 ssh:// URI 中?

将两个 ssh 跳转放入 ssh:// URI 中?

要 ssh 到防火墙后面的盒子,我可以执行以下操作

home$ ssh me@ssh-server
ssh-server$ ssh me@box-behind-firewall
box-behind-firewall$

为了能够box-behind-firewall从网络外部执行诸如使用 git repos 等操作,我想将它们组合成一个 uri,例如

ssh://me@ssh-server/;ssh://me@box-behind-firewall/some/path

这可能吗?如何做到?

答案1

答案2

您可能想要使用端口转发。使用以下方式连接第一台机器

ssh -L2222:box-behind-firewall:22 me@ssh-server

当该连接处于活动状态时,您可以使用以下方式连接到第二台计算机

ssh -p 2222 me@localhost

从本地计算机或使用以下方式访问服务器上的 git 存储库

ssh://me@localhost:2222/foo/bar/baz

作为 URI。

答案3

这不可能按照您想要的方式实现。您需要在登录后执行一些命令,但 ssh-URI-scheme 不支持这些命令 - 我猜是出于安全考虑。

如果您可以运行命令,您可以在连接时直接通过 ssh 连接到下一个服务器。

但你可以通过一些变通方法来实现。下面这行来自man sshd

8. If ~/.ssh/rc exists, runs it[...]

您可以在此处将 ssh 命令添加到下一个服务器(或防火墙/路由器)。您只需要找到某种方法来区分您是想以“正常”方式连接还是想转发到路由器 - 也许您可以在第一台服务器上添加一个用户,该用户的目的只是将您转发到下一个服务器?

相关内容