无需打开端口的 Ssh 中继

无需打开端口的 Ssh 中继

我有机器AB可以Relay通过 ssh 访问另一台机器,但反之则不行。我可以通过这台机器访问另一台B机器A而不Relay打开端口吗22?除非该端口是唯一可访问的端口。

例如,一个可能的解决方案是sshB进入Relay并打开文件进行读写stdinstdout从 连接到A允许relay读写这些文件以便与 进行通信B

有没有办法使用命令行工具来实现这一点?

答案1

那么,显然中继上已经有一个打开的端口,否则 ssh 就不可能实现。

我看到的唯一方法是让 B 通过 ssh 连接到中继,同时打开一个反向隧道,然后 A 就可以使用。您正在寻找“-R”选项。

答案2

以下是一种方法:

  1. ssh A 中继并转发本地端口(例如ssh -L 6022:127.0.0.1:6022)此命令通过 SSH 将 A 上的本地端口 6022 转发到中继上的端口 6022。
  2. ssh B 中继并将远程端口转发到本地(ssh -R 6022:127.0.0.1:22)此命令将中继上的远程端口 6022 转发到 B 上的本地端口 22
  3. 现在在 A 上,使用 ssh 连接到本地主机端口 6022 并且应该能够登录到 B。

相关内容