首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个命令用于在windows中建立ssh隧道?

哪个命令用于在windows中建立ssh隧道?
EN

Server Fault用户
提问于 2017-12-18 15:13:50
回答 1查看 13.2K关注 0票数 -1

我希望在windows服务器和客户端之间建立一个不需要端口转发的ssh隧道。

我知道用端口转发来建立隧道的命令,但是我只有一个服务器和一个客户端,所以不能使用转发。

代码语言:javascript
复制
ssh user@serverip -L 5900:localhost:5900

当我使用这个命令时,我的vnc会话不会通过隧道。因此,我希望避免使用端口转发。

我一直在参考这个指南,根据它,我的vnc应该通过隧道。https://websistent.com/how-to-use-putty-to-create-a-ssh-tunnel/

但我也希望在没有港口转运的情况下也这么做。

使用上面的命令,我将面临回送接口。

谢谢!!

EN

回答 1

Server Fault用户

发布于 2017-12-18 18:38:56

我感觉到了混乱和可能的误解。

当您建立SSH隧道时:

代码语言:javascript
复制
ssh user@server -L 5900:localhost:5900

...the发生了以下情况:

  • 当然,SSH连接是建立和认证的。
  • SSH客户端将设置TCP端口转发隧道,侦听本地客户端系统(-L)上的传入连接。
  • 隧道的监听端将位于系统上的端口5900上(=第一个5900)
  • 加密的隧道将从本地客户端系统转到server系统。
  • server系统上隧道的输出端将再次以原始的未加密形式将流量传递给localhost:5900,就像server系统所看到的那样。这不是本地系统的localhost,而是server系统的localhost

这就是为什么你的句子“但我只有一个服务器和一个客户端,所以不能使用转发”是没有意义的。您始终可以从本地系统的localhost将内容转发到远程系统的localhost (反之亦然,使用-R而不是-L)。

端口转发是为什么SSH可以用于保护没有内置支持SSH或任何特殊接口的其他程序的原因。

要成功地使用隧道,您必须了解现在可以通过连接到客户端系统的本地端口5900连接到server's端口5900。或者换句话说,您必须告诉VNC客户端连接到localhost:5900,以使用加密的隧道连接到server。如果您告诉VNC客户端连接到server:5900,则告诉它绕过您为其设置的隧道,并直接连接而不使用SSH加密。

您还说不想使用端口转发。那么,无论您的VNC (或任何其他)客户端是什么,都必须有一些更精细的方法来使用SSH提供的隧道。据我所知,有两种可能性:

  • SOCKS5 4/SOCKS5 5代理支持:与SSH user@server -D 1234建立ssh连接

现在,SSH客户端将在本地系统的端口1234中设置一个SOCKS代理。进入该代理的所有通信将首先通过加密的SSH隧道到达server系统,然后从那里(同样是以未加密的形式)传递到VNC (或其他)客户端请求的任何目的地。当然,VNC (或其他)客户端必须配置为支持SOCKS4或SOCKS5,您必须将其配置为在localhost:1234上使用SOCKS代理来使用SSH隧道。

  • 另一种选择是完全集成SSH客户端。为了在没有任何代理或端口转发的情况下使用SSH隧道,VNC (或其他)客户端必须包含SSH功能,这样才能从自己的程序代码中直接利用SSH隧道,并有效地使用远程sshd服务器作为自身的扩展,建立从那里到任何地方的网络连接。
票数 5
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/888693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档