不使用端口转发的 ssh 重定向

不使用端口转发的 ssh 重定向

我正在寻找一种将 ssh 连接从一个主机重定向到另一个主机的方法。当用户创建到主机 foo 的 ssh 连接时,我希望服务器返回一些响应,使 ssh 客户端关闭到 foo 的 ssh 连接并改为连接到主机 bar。

重要的是,对于我设想的应用程序,简单地通过 foo 将 ssh 连接转发到 bar 是不行的,因此标准端口转发是不可能的。一旦发生重定向,客户端应该直接将 TCP 数据包发送到 bar,而不是 foo(而不是通过 foo 发送到 bar)。

因此,大致上,我正在寻找一个类似于 HTTP 重定向的 SSH(这会导致客户端挂断原始连接并连接到重定向到的主机)。

对于我所想的应用程序来说,这不需要任何客户端配置也很重要。

那么,这可能吗?

答案1

SSH 协议中没有提供重定向功能。请阅读RFC 4251RFC 4252, 和RFC 4253了解连接协商的详细信息。

答案2

您可以设置SSH 服务器充当酒吧SSH 服务器。

例如,使用 OpenSSH,您应该能够通过ForceCommandSSH 连接到酒吧服务器:

ForceCommand ssh bar_host

当然主机必须配置为允许无交互访问酒吧,例如通过拥有未加密的私钥。

这对于客户端应用程序来说是透明的。

相关内容