【问题标题】:create a port forwarding through ssh-tunnel in .ssh/config [closed]通过 .ssh/config 中的 ssh-tunnel 创建端口转发 [关闭]
【发布时间】:2016-04-02 13:27:01
【问题描述】:

我实际上对这个问题摸不着头脑。

我为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

这实际上打开了我机器上的一个端口,通过 hop 到 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

这就是我所需要的。

我错过了什么?

【问题讨论】:

  • 你的问题是off-topic这里。
  • 那么,@Martin 会在哪里成为话题?
  • @MartinPrikryl : 有人可以把它移到serverfault.com 吗?
  • Super User 更合适,imo。

标签: linux ssh portforwarding ssh-tunnel


【解决方案1】:

第一个命令(与ssh config 结合使用)是以用户extUser 身份登录hop,然后以用户user 身份登录100 机器。

当第二个命令尝试以用户extUser 登录两台机器时。这可能是它失败的原因 - 因为用户 extUser100 机器上没有访问设置。

【讨论】:

  • 其实第二条命令根本就没有登陆百机。它只是将隧道的尽头指向 100:9080。所以是的,它跳过了一次 ssh 登录。应该可以正常工作,因为从我的跳机上可以看到 192.168.1.100:9080。 ?
  • 我的意思是它试图以用户 extUser 的身份进入 100 机器 - 因为当你没有在命令行或配置中指定用户时会发生这种情况 - 它使用当前登录的用户。尝试将-v 选项传递给第一个命令中的两个ssh 命令,看看它到底在做什么。
  • 哦,不,它不是“跳过”第二次登录。它正在试图以extUser 的身份进入100 机器。它将尝试在100 上找到extUser 的允许密钥。
【解决方案2】:

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

以上所有内容都是正确且有效的。什么欺骗了我,是我的浏览器太聪明了,它通过尝试将localhost:9080 转换为www.localhost.com:9080,这当然失败了。 面团

愚蠢聪明的火狐

【讨论】:

    猜你喜欢
    • 2012-02-27
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 2016-10-27
    • 2013-02-12
    • 1970-01-01
    相关资源
    最近更新 更多