通过SSH反向隧道的远程桌面以替换TeamViewer

山X

我想通过SSH(反向)隧道打开从笔记本电脑到桌面的远程桌面会话。那应该很简单(或至少可行),对吗?到目前为止,我一直在使用Team Viewer登录到远程桌面。我想在没有Team Viewer的情况下获得类似的结果。

这是我的SSH隧道的样子:

laptop--->nat--->middleman<--nat<--desktop

所有机器都运行Linux(主要是Kubuntu 12.04或OpenSuse 12.3)。我不能在nat路由器上更改任何端口或进行任何配置更改。

我将描述我的SSH隧道,因为了解这对于解决VNC /远程桌面问题(这是我的问题的核心)似乎是必要的。关于这条腿:

middleman<--nat<--desktop

...这是如何建立的:

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

关于这条腿:

laptop--->nat--->middleman

我可以按以下方式连接到中间人:

me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman  

但是,我实际上需要做的是直接连接到桌面,而不是中间人。为此,我在中间人上使用netcat(“ nc”)。基于,似乎需要nc。因此,我在笔记本电脑上编辑SSH配置文件以使用ProxyCommand和nc:

me@laptop:~/.ssh$ nano config

内容是:

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

哪里middleman_fqdn像“ middleman.com”

然后,我只需一步就可以连接到“桌面”:

me@laptop:~$ ssh family_desktops -p 1234

(我是根据这里这里的帮助以及我所问的其他相关问题来进行这项工作的。由于这个问题我已经花了很多周时间了,所以我就这个话题问了很多问题。)

通过这种SSH连接,我可以在计算机上看到一个功能完备的shell,标记为desktop完美的。

现在,我只需要通过此SSH通道的类似VNC(或类似TeamViewer的)的远程桌面解决方案。如何?

到目前为止,这是我尝试过的:

中间人<-nat <-桌面

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

与建立的连接:

x11vnc -autoport 5901 

我注意确保它已连接到端口5901。

笔记本电脑---> nat->中间人<-nat <-桌面

笔记本电脑〜/ .ssh / config:

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

隧道设置:

me@laptop:~$ sudo ssh family_desktops

VNC客户端:

connect to localhost:5901

这给出了“找不到服务器”的错误

我在ProxyCommand上尝试了多种变体,但都没有成功。显然,我正在猜测哪些参数应该在ProxyCommand中,哪些应该在ssh命令行中。我可以看到我的安装程序存在一些潜在的问题,但是我仍然无法弄清楚什么会使它全部正常工作。

PS如前所述,我已经问了几个问题。其中一些使我更接近解决方案,并构成了我当前问题的基础。我在此主题上先前提出的其他问题只是表明我的无知和无能力以正确的形式提出问题。在这一点上,这个当前问题代表了我最大的能力来陈述我的问题是什么以及我想要的解决方案是什么,但是我的其他一些问题仍然是未解决的。是相关的。

prateek61

您可以不做nc而尝试执行第二步吗?那就是-仅使用-L和-R来执行VNC。我相信问题在于您的netcat会话正在连接回已经打开的会话。因此,在执行VNC时,请勿使用netcat。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章