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