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)
    chmod 600 /home/bear/id_rsa         #必须是600权限,否则仍需要输入密码
    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 -FullScreen  #使用SSH Tunnel连接远程VNC桌面
    vncviewer 8.8.8.8:55 -FullScreen               #不使用SSH Tunnel,直接连接远程VNC桌面
    

    小提示: 全屏状态下, 可以按F8键呼出右键菜单, 然后在右键菜单里退出全屏.

    当然也可以写成如下格式

    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'
    alias myvnc='vncviewer -via 1.1.1.1'
    
    myvnc 8.8.8.8:55 -FullScreen    #使用SSH Tunnel连接远程VNC桌面
    

    3, 多用户使用问题
    在第2步中, 我们将/home/bear/id_rsa的权限设置成了600, 然后使用SSH Tunnel的时候才不会要求输入bear用户的密码. 细心的你肯定会发现, id_rsa的权限必须设置成600, 如果你把它设置是660的话, 使用SSH Tunnel时会遇到Permissions 0660 for ‘/…/id_rsa’ are too open.并且要求再次输入SSH密码. 这意味着, 只有一个人(即id_rsa文件的属主)可以使用这个SSH Tunnel.

    解决办法:
    如果id_rsa文件的属主是root的话, 那么该文件的权限可以被设置是440.

    chown root:mygroup /home/bear/id_rsa
    chmod 440 /home/bear/id_rsa
    

    然后, 只要是mygroup组里的用户, 都可以使用此id_rsa文件来使用SSH Tunnel了. 有人说在CentOS6里设置成660同样有效, 我没有试过, 有兴趣的同学自己测试一下吧.



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