通过 SSH 连接到没有运行 SSH 服务器的机器,或者如何反向重用现有的 SSH 连接

通过 SSH 连接到没有运行 SSH 服务器的机器,或者如何反向重用现有的 SSH 连接

假设我有两台机器:A 和 B。

  1. A已安装SSH服务器和客户端
  2. B 仅安装了 SSH 客户端
  3. 两台机器之间的连接正常

我知道我可以从机器 B 发出以下命令:

ssh A

它将给我机器 A 的控制台。

是否有可能以某种方式实现类似但相反的方式,从 A 获取 B 控制台?

答案1

如果计算机 B 正在运行 telnet 服务器,则可以使用从 B 到 A 的 ssh 连接来转发 telnet 端口,这样即使防火墙阻止了对端口的直接访问(理应如此),计算机 A 也可以连接到它。假设 telnet 正在侦听计算机 B 上的默认端口 (23),您可以执行类似 的操作ssh -R 23:localhost:2023 A。然后 A 上的用户可以使用telnet localhost 2023连接到 B 上的 shell。(我们在远端使用端口 2023 而不是 23,因为您需要 root 身份才能侦听低于 1024 的端口号。)

我不知道有什么办法可以做到这一点一些在机器 B 本地运行的登录服务器。

答案2

不,你不能这么做。B 上应该运行一些服务于客户端的东西。

如果问题是仅在初始 SSH 连接后才允许连接,您可以在第一个 SSH 连接上设置反向 SSH 隧道,并通过该隧道打开新的 SSH 连接。但您仍然需要在 B 上运行 SSH 服务器。

相关内容