问题描述
Ubuntu系统版本是18.04,由于有时候需要远程连接,因此安装了x11vnc,具体操作步骤如下:
1.安装x11vnc
sudo apt-get install x11vnc
2.设置vnc连接密码
sudo x11vnc -storepasswd
3.开启vnc服务
x11vnc -forever -shared -rfbauth ~/.vnc/passwd
服务开启之后使用VNC Viewer进行连接的时候却出了问题,输入密码之后一直提示password check failed!如图:
排查过程
密码是肯定输对了的,也试过很多次了。
于是查看服务器这边的输出,发现有一行提示Couldn’t read password file: /home/tom/.vnc/passwd,接着便输出了rfbAuthProcessClientMessage: password check failed
于是检查passwd文件,发现该文件是归属root用户的,而且其他用户对该文件没有任何权限
这时才恍然大悟,我使用的sudo命令创建的密码,因此文件归属root用户,而启动x11vnc时却是用的普通用户,因此使用VNC Viewer连接后进行密码校验时因为无权限读取密码文件而导致了校验失败。
解决方案
知道了原因问题就好解决了,两个解决方案,最简单的一个,启动x11vnc时也使用sudo命令:
sudo x11vnc -forever -shared -rfbauth ~/.vnc/passwd
第二个,赋予当前用户对passwd文件的读写权限,然后使用该用户保存密码
最后依然使用x11vnc -forever -shared -rfbauth ~/.vnc/passwd命令来启动x11vnc
两个方案任选一个,然后在VNC Viewer中输入ip+端口号进行连接接着输入密码就能成功连接到远程桌面了