怎样使用SSH来转发SSH命令?

machineA 是有外网 IP 的服务器,可认为它是网关。
machineB 是与 machineA 在同一内网的服务器。
管理员持有可登录 machineA 的私钥。
machineA 持有可登录 machineB 的私钥。

现在有这样一个需要,请问应该如何搭建 SSH 隧道?

管理员在客户端执行下述命令,使 command 在 other@machineB 上被执行。

$ ssh -p 2022 user@machineA command

恳请指教,谢谢!

阅读 2.6k
1 个回答

经过一番查询,恬面自问自答。

$ ssh -t user@machineA "ssh other@machineB 'command'"

通过 -t 参数,其实是在 machineA 上打开了 tty 然后执行了后面这条命令。

如果是直接做代理,有两三种方法,这里不再赘述。
我们最后改了技术方案,没有使用到该问题里学到的技术。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进