问题描述
事实:我有一个用于共享桌面的配置,该配置一直有效,直到 Gnome 桌面最近更新为使用 sgnome-shell 3.10。我曾经使用 TightVNC 从一台 Windows 机器连接到我的机器,直到昨天(2014-19-1)它都可以正常工作。
现在来自 Windows 端的连接失败 ( full log in pastebin ) 并出现此错误:
哪个挖日志是:
[ 5872/ 6448] 2014-01-20 12:11:18:247 List of security type is read
[ 5872/ 6448] 2014-01-20 12:11:18:247 : Security Types received (1): Unknown type (18)
[ 5872/ 6448] 2014-01-20 12:11:18:247 Selecting auth-handler
[ 5872/ 6448] 2014-01-20 12:11:18:247 + RemoteViewerCore. Exception: No security types supported. Server sent security types, but we do not support any of their.
“sharing” 部分已按应有的方式配置,如您在此处所见:
诊断:似乎更新将安全类型更改为 tightVNC 未知的新类型(过去发生过)。
问题:在 TightVNC(以及世界其他地方)catches up 之前,是否可以将内部 VNC 服务器配置为使用以前的安全类型?
最佳思路
真正的解决方案:我现在在 Windows 机器上使用 SSVNC,在 Linux 服务器上使用 x11vnc。也适用于 android 上的 bVNC。您需要一些专业知识才能使其发挥作用,因此请在此处进行简要说明:
在 Linux 上(按照 x11vnc 给你的指令,很冗长但值得一读):
x11vnc -storepasswd
x11vnc -forever -repeat -usepw -ssl -autoport 6000
(您必须将最后一个放在您的登录启动脚本之一中,或其他任何内容。不要在生成的 SSL 证书上使用密码。我使用端口 6000 以免与 vino 混淆)。
在 Windows 上:安装二进制客户端 from here 。
连接并享受(缓慢…)加密连接。
部分答案:(为了帮助他人而发布,不推荐);我希望这个问题会有其他答案——我会将这个答案标记为正确答案,因为目前还没有解决方案)。
当 Vino 项目决定切换到 require encryption by default 时,问题浮出水面——不幸的是,大多数 Windows、Android 和 iOS 查看器不支持 vino
服务器(类型 18)支持的唯一加密类型。据我所知,只有基于 Linux 的 vinagre
查看器支持它。
我已经向 Vino 项目 both upstream 和 launchpad 报告了一个关于这个问题的错误;在那里寻找更多细节。基本上,似乎没有足够的开发人员权力来为服务器实现更多的加密类型(足够公平)。
这意味着您可以通过使用 dconf-editor
禁用整个 VNC 层的加密来回到以前的不安全行为,如下所示:
大胖注意,这意味着您键入的所有内容在网络中都是清晰可见的。包括密码。
我可以做到,因为连接实际上是通过加密的 SSH 隧道进行的,并且远程计算机上没有其他本地用户——但即使在这种情况下,如果有人设法访问您的计算机,他们也可以读取您的所有秘密通过嗅探 127.0.0.1…
次佳思路
16.04 的一行 UNSAFE 加密关闭命令
dconf write /org/gnome/desktop/remote-access/require-encryption false
然后 TigerVNC 和 realvnc 从 Windows 工作。
然而,正如 Rmano 指出的那样,只有当您的连接已经在另一层上加密时才这样做。
发现 dconf dump
。
TigerVNC 端也有兼容性请求:https://github.com/TigerVNC/tigervnc/issues/307