我曾经看到过这样一个问题:如何设置 ssh 隧道来转发 ssh?但由于操作系统障碍,我遇到了困难。有人坐在无法配置路由器的 XP 笔记本电脑上。我让他们运行 freeSSHd,我需要连接到它。我有自己的个人 SSH 服务器,可以自由访问。另一个人只有 puTTY 作为 SSH 客户端的选项,这让人感到困惑(尤其是因为她对技术不是很精通)。我理解使用 SSH 隧道通过我的服务器连接到她的服务器的概念,但我似乎无法实现它。现在我让她通过 puTTY 使用远程隧道(源:1357)和(目的地:localhost:23)连接到我的服务器。她的 freeSSHd 服务器在端口 23 上运行。但是,当我尝试通过 SSH 连接到端口 1357 上的服务器时,出现连接被拒绝错误。这个设置有什么问题?
最终答案:
首先,在 sshd_config 中添加GatewayPorts clientspecified
。然后,在 puTTY 中添加一个带有源端口<rport>
和目标的远程隧道localhost:<sport>
(其中<rport>
是您希望公共 SSH 服务器监听的端口,<sport>
是您的本地防火墙 SSH 服务器正在监听的端口)。确保 puTTY 的隧道页面顶部的两个框都已选中。这相当于(如果我理解正确的话)ssh -N -g -R <rport>:localhost:<sport> user@public_server
。然后,您应该能够通过 SSH 连接到连接的公共服务器<rport>
,它会正确地将您转发到防火墙服务器。至少,它对我来说是有效的……
答案1
您需要确保它是反向隧道,因此在 SSH->Tunnels 下确保底部的按钮显示“远程”和“自动(或 IPv4)”。但是我无法让它工作,所以我很想知道问题出在哪里。
答案2
防火墙可能吗?另外,您可能启用了 TCPWrappers,因此请检查 /etc/hosts.deny 文件中的内容,如果您拒绝任何内容或全部内容,则可能必须通过 /etc/hosts.allow 允许它。还要检查是否有任何软件防火墙(我知道我首先说的是防火墙,但我指的是硬件防火墙,例如路由器、PIX 等)。