通过 JumpHost 和附加端口映射建立 SSH 隧道?

通过 JumpHost 和附加端口映射建立 SSH 隧道?

我有以下布局。

  • A(NAT/防火墙后面的机器)
  • B(用于反向 ssh 连接的服务器 - 堡垒主机?)
  • C(我的笔记本电脑)

A 与 B 建立反向 ssh

/usr/bin/autossh -M 0 -N -q -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" [email protected] -R 22000:localhost:22 -C -i ~/id_rsa

C 通过 B 与 A 建立 ssh 连接(B 是我的跳转主机)

我使用以下 ssh 配置执行此操作(.ssh/config

Host B
    ForwardAgent yes
    HostName xxx.xxx.xxx.xxx
    IdentityFile ~/.ssh/b.id_rsa

Host A
    HostName 127.0.0.1
    ProxyJump B
    StrictHostKeyChecking no
    IdentityFile ~/.ssh/a.id_rsa
    Port 22000

此时,我可以输入内容ssh A,并且可以按预期访问服务器终端。

现在我希望能够通过隧道连接一个工具(例如 Robo T3),从我本地使用端口 27000 连接到安装在主机 A 上的 MongoDB,并监听 localhost:27017。

我应该在 SSH 命令中添加什么(或在配置中修改)来实现这一点?

答案1

感谢这篇文章(如何进行 ssh 隧道端口转发?)我设法找到了一个非常简单的解决方案。

ssh -N -L 27000:localhost:27017 A

相关内容