服务器端设置
安装vncserver:
sudo apt-get install tightvncserver
配置桌面启动脚本文件 ~/.vnc/xstartup,文件不存在则新建,内容如下:
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 & pulseaudio &
fcitx &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
使文件可执行:
chmod +x ~/.vnc/xstartup
修改SSH配置文件 /etc/sshd_config:
SSH服务的基本设置请查看另一篇文章 Debian Linux SSH/SFTP 服务设置 ,这里仅说明SSH连接VNC要做的必要修改。
-
首先在全局设置区禁止用户使用密码登录而只能用私匙文件登录:
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
-
同时还要禁止X11和TCP转发:
X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
AllowTcpForwarding no
TCPKeepAlive yes
-
单独设置允许使用vnc或SFTP的个别用户:
Subsystem sftp internal-sftp
AllowGroups xvnc sftp
Match Group sftp
ForceCommand internal-sftp
ChrootDirectory /home/SFTP
PasswordAuthentication yes
Match Group xvnc
X11Forwarding yes
AllowTcpForwarding yes
上例中允许通过私匙文件使用vnc的是“xvnc”组,允许通过SFTP密码登录的是sftp组。
客户端设置
Remmina安装
VNC连接软件使用Remmina,它只能在Linux下使用。我还没发现哪个Windows下的应用程序能够通过SSH私匙使用VNC。
sudo apt-get install remmina remmina-plugin-vnc
SSH连接到服务器并开启vnc桌面
安装成功后打开Remmina,新建一个SSH连接,认证类型当然是使用私匙。SSH连接到服务器后,使用下面命令开启vnc桌面服务:
vncserver -name myVNC -geometry 1820x960 -httpport 5901 :1
如果第一次启用vnc服务,会提示你设置访问密码。如果没有错误信息,断开SSH连接即可。
通过SSH通道连接VNC
如果你愿意,上一步开启的VNC桌面完全可以只使用密码就能访问,但数据是不加密的。我们费劲设置SSH的目的就是为了安全。
在Remmina中新建一个VNC查看器连接(VNC viewer),服务器通常是ip或域名加编号的形式,如:
192.168.1.106:1
色彩深度和画质按需选择。然后赚到“SSH Tunnel”(SSH通道)标签页设置启用SSH通道,SSH验证方式选择为私匙文件即可。保存后双击该设置即可连接,会有私匙密码和VNC密码输入的提示。
顺利的话你会看到跟服务器本地登录差不多的桌面,但这是一个新的登录,桌面是新的。
使用结束后记得通过SSH关闭VNC服务,否则他人有可能使用密码(而不需要私匙文件)就能访问你的桌面:
vncserver -kill :1
作者: ZGUANG@LZU
Created: 2018-10-19 五 09:54
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)