我正在寻找一种方法来redirect从一个主机的SSH连接到另一个。 当用户创build一个到主机foo的ssh连接时,我想让服务器返回一些响应,导致ssh客户端closures到foo的ssh连接,而是连接到主机栏。
重要的是,对于我的应用程序,我记得简单地通过foo转发ssh连接到bar是不行的,所以标准的端口转发是不可能的。 一旦redirect发生,客户端应该直接发送TCP数据包到酒吧,而不是富(而不是通过富)。
所以,粗略地说,我正在寻找一个SSH模拟HTTPredirect(这将导致客户端挂起原来的连接,而不是连接到它被redirect到的主机)。
我记住的应用程序也是非常重要的,这不需要任何客户端configuration。
那么有可能做到这一点?
SSH协议中没有规定redirect。 有关连接协商的详细信息,请阅读RFC 4251 , RFC 4252和RFC 4253 。
您可以设置foo SSH服务器作为SSH服务器的一种代理。
例如在OpenSSH中,您应该可以使用ForceCommand来连接到条形服务器:
ForceCommand ssh bar_host
当然, foo主机上的帐户必须被configuration为允许无交互访问栏 ,例如通过具有未encryption的私钥。
这将对客户端应用程序透明地工作。