bgo*_*odr 4 vnc vncviewer 18.10
(我不是在寻找诸如“停止使用 VNC,因为它不安全”之类的答案,也不需要推荐不同 VNC 实现的答案,因为我特别想让 TigerVNC 正常运行)。
我需要使用 TigerVNC 从 Ubuntu 18.10 笔记本电脑显示和控制 Ubuntu 18.10 桌面。两台机器最近都升级到了18.10。
我已通过https://askubuntu.com/a/1088328中的说明在桌面上启用了桌面共享, 但有以下例外:当我未执行以下命令时:
gsettings set org.gnome.Vino require-encryption false
Run Code Online (Sandbox Code Playgroud)
它不起作用(见下文)。但是,当我在桌面上使用该gsettings
命令时,我会收到输入 vnc 密码的提示,输入密码后,我就可以控制桌面。所以最终,我知道这一定是解决办法,但我特别需要知道为什么需要这样做(请参阅下面的 remmina 用法)。我的网络搜索都没有提供原因的答案。
在台式机上,共享设置为:
注意:我可以成功使用remmina工具,使用VNC设置,连接到台式机并显示它,而无需gsettings在台式机上使用上述设置。但是,当我使用 TigerVNC 类型的 vncviewer 时,使用以下命令:
vncviewer thedesk.local:0
Run Code Online (Sandbox Code Playgroud)
(其中 thedesk.local 是 Ubuntu 桌面计算机),我收到一个弹出窗口:
No matching security types
Run Code Online (Sandbox Code Playgroud)
shell 中的输出显示:
$ vncviewer thedesk.local:0
TigerVNC Viewer 64-bit v1.9.0
Built on: 2018-07-29 13:31
Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)
See http://www.tigervnc.org for information on TigerVNC.
Sun May 26 07:10:29 2019
DecodeManager: Detected 8 CPU core(s)
DecodeManager: Creating 4 decoder thread(s)
Sun May 26 07:10:30 2019
CConn: connected to host thedesk.local port 5900
Sun May 26 07:10:31 2019
CConnection: Server supports RFB protocol version 3.7
CConnection: Using RFB protocol version 3.7
CConnection: No matching security types
CConn: No matching security types
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 18.10 笔记本电脑和台式机上,我安装了这些类似 vnc 的软件包版本,apt remove-ing 所有其他版本的“vnc”客户端/服务器,以避免与 Linux“替代品”机制混淆:
$ dpkg --list *vnc* | grep '^i'
ii libvncclient1:amd64 0.9.11+dfsg-1.1ubuntu0.1 amd64 API to write one's own VNC server - client library
ii remmina-plugin-vnc:amd64 1.2.31.4+dfsg-1ubuntu1 amd64 VNC plugin for Remmina
ii tigervnc-common 1.9.0+dfsg-1 amd64 Virtual network computing; Common software needed by servers
ii tigervnc-standalone-server 1.9.0+dfsg-1 amd64 Standalone virtual network computing server
ii tigervnc-viewer 1.9.0+dfsg-1 amd64 Virtual network computing client for X
$ vncviewer --version |& head -5
TigerVNC Viewer 64-bit v1.9.0
Built on: 2018-07-29 13:31
Copyright (C) 1999-2018 TigerVNC Team and many others (see README.rst)
See http://www.tigervnc.org for information on TigerVNC.
$
Run Code Online (Sandbox Code Playgroud)
remmina --version弹出一个对话框,内容如下:
1.2.31.4 (git n/a)
Run Code Online (Sandbox Code Playgroud)
remmina 参与的原因只是为了表明某些客户端能够与 Ubuntu 桌面对话,但 TigerVNC 不行。我尝试从运行 Raspbian 的 Raspberry Pi 3 B+ 连接到 thedesk.local,并收到不同的错误,但似乎仍然涉及 VNC 实现之间的安全协议的类似不兼容性。错误是:
那么,remmina 向在 thedesk.local 的 display :0 上运行的 X 服务器(或 VNC 服务器?)提供什么,而 TigerVNC 查看器客户端(或在 Raspbian 下运行的 RealVNC 客户端)没有提供?
我的网络搜索显示了诸如
https://ubuntuforums.org/showthread.php?t=2384046之类的结果,其中给出了“你为什么不做‘X’呢?” 类型的响应,这是一个公平的观察。但我特别想找出为什么我必须使用更改gsettings才能让 TigerVNC 查看器弹出提示,而 remmina 不需要它。(当我需要安全性时,我已经知道如何通过 SSH 传输流量。)
小智 5
显然有两种完全不同的加密协议可用于 VNC。根据《网络安全评估:了解你的网络》,表7-31有:
- type 18: TLS authentication, used by Ubuntu Linux distributions
- type 19: TLS authentication, used by the Win32 VeNCrypt package
Run Code Online (Sandbox Code Playgroud)
(不知道为什么这本书在这里明确提到“Ubuntu”作为类型 18)。
Vino(Gnome 桌面共享应用程序)使用LibVNCServer作为后端。并且 LibVNCServer仅支持类型 18。Remmina 也使用 LibVNCServer,因此它也支持类型 18。顺便说一句,由于 Remmina 是一个 VNC客户端,我猜它甚至支持类型 19。
另一方面,TigerVNC显然不支持类型 18,但支持类型 19;至少源代码是这么建议的。
这两个工具实际上可以通信的原因gsettings set org.gnome.Vino require-encryption false是该命令关闭了 Vino 中的加密,因此 TigerVNC 将仅使用未加密的连接(这是两个工具都支持的协议)。
要真正解决此问题,LibVNCServer 需要添加对类型 19 (VeNCrypt) 的支持,或者 TigerVNC 需要添加对类型 18 的支持。我不知道这两个项目是否正在进行任何此类工作。
旁注:我想这整个情况变得更加复杂,因为这两个方案都有点称为“TLS”,并且实际上在底层使用了 TLS,但仍然不兼容。对于 18 型,甚至没有实际的名称;而类型19/VeNCrypt本身有九种不同的子类型,用于不同的加密方法。根据我的经验,这整个混乱局面非常具有代表性的 VNC 协议。
| 归档时间: |
|
| 查看次数: |
10101 次 |
| 最近记录: |