我有两台机器 A 和 B,它们位于不同的子网中,并且都位于单独的防火墙后面。机器 A 可以看到 B,但 B 无法看到 A。我在两台机器上都有一个用户帐户(非 root),我可以从 A SSH B,并且我希望能够从 B SSH A,但这不能直接完成。
我已经使用隧道通过 SSH 跳过中间服务器,但我在这里要求的是不同的,我不知道它会被称为什么。有没有办法打开从 A 到 B 的连接,然后可以从机器 B“反向”使用该连接在 A 上运行命令?
答案1
简短的回答是可以,具体方法是:
machine-A$ ssh -R 127.0.0.1:2222:127.0.0.1:22 [ip__or_name_of_B]
然后B
你ssh
可以A
:
machine-B$ ssh -p2222 127.0.0.1
这说明了以下内容:
在远程端 ( )上
A
创建隧道-R
,以便端口上前往 localhost (127.0.0.1
)的任何流量2222
都应通过隧道返回并发送到 localhost(127.0.0.1
现在位于本地端)端口22
该
B
命令只是说,ssh
到本地主机端口2222
,这是隧道的入口。