通过 .ssh/config 中的 ssh-tunnel 创建端口转发

create a port forwarding through ssh-tunnel in .ssh/config

我真的在为这个问题挠头。

我找到了 port-forwarding via multiple ssh-hops 的优秀指南。

按照本指南,我尝试了这个:

这个有效:

$ ssh -t hop -L 9080:localhost:9080 \
> ssh -A -t user@192.168.1.100 -L 9080:localhost:9080

与 .ssh/config

Host hop
    User extUser
    IdentityFile ~/.ssh/id_rsa.company.pub
    Hostname company.com
    ForwardAgent yes
    Port 11000

这实际上在我的机器上打开了一个端口,通过跳转到 100 台目标机器的 9080 端口服务。

跃点服务器可以访问 192.168.1.100:9080(即 wget 192.168.1.100:9080 成功)

所以根据指南,这也应该有效:

ssh -L 9080:192.168.1.100:9080 hop

但事实并非如此。它打开到跃点 ssh 点的连接 (-f -N) 会阻止这种情况)但隧道不会转发到目的地。我错过了什么?

当然最后应该都在了.ssh/config:

Host tunneled-9080
    User extUser
    IdentityFile ~/.ssh/id_rsa.company.pub
    Hostname company.com
    ForwardAgent yes
    Port 11000
    LocalForward 9080 192.168.1.100:9080

好简单

ssh -f -N tunneled-9080

这就是我所需要的。

我错过了什么?

第一个命令(与 ssh config 结合使用)是以用户 extUser 登录 hop 并从那里以用户 [=14] 登录 100 机器=].

而第二个命令尝试以用户 extUser 登录两台计算机。这可能就是它失败的原因 - 因为用户 extUser 没有在 100 机器上设置访问权限。

仅作记录,如果有人提出这个问题。

以上所有内容均正确且有效。欺骗我的是我的浏览器太聪明了,它有时会通过尝试 localhost:9080 转换为 www.localhost.com:9080 ,当然失败得很厉害。 面团

笨聪明的firefox