NoMachine通过SSH / Netcat代理

我通过SSH连接隧道到我的目标主机(example.com)的NC连接到我的网关。 下面是这个连接的.ssh / config设置:

Host target Hostname example.com HostKeyAlias target ProxyCommand ssh me@gateway /bin/nc example.com 22 

这是很好的,并允许我一步到达目标主机。 我想要做的是能够通过此连接隧道NX或VNC会话。

任何人都知道如何做到这一点?

我认为你应该使用SSH已经可以做的端口转发:

 ssh -L 5900:example.com:5900 me@gateway 

这将通过网关将端口5900从本地机器转发到example.com。 现在只需从本地机器上的“vncviewer localhost”。

以下是如何在客户端和目标机器之间通过网关跳过的ssh隧道上创buildVNC会话:

/ etc / ssh / sshd_config(在目标机器上)必须包含以下行:

 X11Forwarding yes XAuthLocation /usr/bin/xauth 

您的xauthpath可能不同,但默认情况下,sshd查找错误的位置,因此应该设置此值。

.ssh / config(在客户机上):

 Host example.com Hostname foo.example.com HostKeyAlias example.com ProxyCommand ssh -t -C [email protected] /bin/nc %h 22 

然后从客户端我可以运行

  me @ localhost $ ssh -X -C example.com 

这将启动我的客户端上的X会话以及与example.com的ssh连接。 现在,在远程主机上再添加几个命令来启动VNC:

 [email protected]$ vncserver :n [email protected]$ vncviewer -encodings "copyrect tight zlib corre rre raw" :n 

在上面的命令中,:n是您想要启动vnc的显示编号,以及vncviewer应该查找vnc会话的显示。 由于这看起来像是VNC的本地连接,因此指定一些更好的编码是一个好主意,因为vncviewer将默认为raw,从而导致networking性能较差。

而已!