IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    VNC over SSH tunnel

    bear发表于 2016-07-20 02:59:06
    love 0

    VNC over SSH tunnel, 意为建立在SSH通道上的VNC. 这样做可以达到2个目的, 一是可以增强VNC的安全性, 二是如果VNC速度太慢, 可以走SSH通道作为代理. 本文介绍其配置方法.

    使用环境:
    A机在韩国, IP为1.1.1.1, 速度较快
    B机在美国, IP为8.8.8.8, 速度慢, 且有一个VNC桌面(ID号为:55)
    由于我们直接连接B机的VNC桌面会非常慢, 此时我们可以借助A机的SSH服务跳转, 以达到加速VNC桌面的目的.
    本地也是Linux环境, 本机有多位用户需要登陆到美国的VNC桌面上

    1, 在A机(用于代理的机器)上以bear用户的身份生成SSH-Key, 并将私钥拷贝回本地

    ssh-keygen -t rsa    #一路回车即可
    chmod 700 ~/.ssh
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys      #必须做,否则在连接VNC的时候仍需要输入bear的密码
    

    然后将私钥(id_rsa文件)拷贝回本地, 注意不是id_rsa.pub文件.

    2, 在本地(也是Linux系统)指定SSH Tunnel相关参数

    sudo apt-get install xvnc4viewer    #安装VNC客户端
    
    #定义VNC_VIA_CMD变量,指定SSH代理的端口(22),key文件(id_rsa),用户名(bear)
    export VNC_VIA_CMD='/usr/bin/ssh -x -p 22 -i /home/bear/id_rsa -l bear -f -L %L:%H:%R %G sleep 20'
    

    然后就可以使用SSH Tunnel了

    vncviewer -via 1.1.1.1 8.8.8.8:55  #使用SSH Tunnel连接远程VNC桌面
    vncviewer 8.8.8.8:55               #不使用SSH Tunnel,直接连接远程VNC桌面
    

    当然也可以写成如下格式

    vim /etc/profile.d/vnc.sh    #写入如下2行
    export VNC_VIA_CMD='/usr/bin/ssh -x -p 22 -i /home/bear/id_rsa -l bear -f -L %L:%H:%R %G sleep 20'
    export myvnc='vncviewer -via 1.1.1.1'
    
    myvnc 8.8.8.8:55    #使用SSH Tunnel连接远程VNC桌面
    


沪ICP备19023445号-2号
友情链接