Ubuntu中用ssh加密VNC通信


Ubuntu远程桌面有两种,一种是通过XDMCP,另一种是通过VNC的远程桌面,两者的区别是XDMCP登录是新开了一个session,退出登录后这个session就关闭了。

VNC是运行当前的session,退出后原session继续,比较适合在一台机器上长时间运行一个有图形界面的程序,而且需要中间通过图形登录上去查看,比如我在办公室的机器上一直运行着email的图形客户端,回家后想上去看看有什么新的email。

vnc协议缺省是TCP 5900,文本传输,没有任何保密性可言,我们可以把SSH和VNC结合起来,提高VNC的保密性。下面假定远端和本地都运行Ubuntu。

远端:

首先打开vnc server,Ubuntu缺省安装的是vino-server, system-> preferences -> remote desktop,钩上Allow other users to view your desktop就立刻打开了vino server,把ask for confirmation的钩去掉。如果愿意,也可以设置密码保护。

到现在,可以通过本地的xvncviwer访问远端,当然没有任何保密性。

apt-get install openssh-server,安装ssh服务器,在本地通过ssh访问远端测试是否安装成功

ssh remote-server -l user

通过防火墙,将5900端口关闭,一定要把ssh端口打开,缺省是tcp 22。

到此为至,远端已经设置完毕,通过xvncviewer已经不能访问远端了。

本地:

缺省已经安装了xvncviewer,如果没有则安装之。

打开两个窗口,

首先在第一个窗口运行

ssh -L 5900:localhost:5900 user@remote-server

如果能够登录,则在第二个窗口运行

xvncviewer localhost

相关内容