我得到了一个 Raspberry Pi 4,但我没有自己设置;它报告:
pi@raspberry:~ $ cat /etc/issue
Debian GNU/Linux 12 \n \l
pi@raspberry:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
pi@raspberry:~ $ uname -a
Linux raspberrypi 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux
pi@raspberry:~ $ ps axf | grep vnc
1996 pts/0 S+ 0:00 \_ grep --color=auto vnc
1057 ? SLl 0:00 /usr/bin/wayvnc --render-cursor --keyboard=us
所以,显然有一个wayvnc
服务器正在其上运行。
我尝试从我的 Ubuntu 机器连接到它,但无法连接。我在网上发现通过 ssh 连接转发 VNC 端口是个好主意,所以我在我的 Ubuntu 笔记本电脑上首先执行了以下操作:
user@laptop:~$ ssh -L 5903:localhost:5900 [email protected]
...这样我就可以连接到localhost:3
VNC 地址而不是192.168.1.248:0
- 但这没有帮助。
我的 Ubuntu 笔记本电脑报告:
user@laptop:~$ cat /etc/issue
Ubuntu 22.04.3 LTS \n \l
user@laptop:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
user@laptop:~$ gvncviewer localhost:3
Connected to server
Got credential request for 1 credential(s)
Error: The certificate is not trusted
Disconnected from server
user@laptop:~$ ssvncviewer localhost:3
Proto: RFB 003.008
Connected to RFB server, using protocol version 3.8
SelectSecurityType:
sec-type[0] 19 (rfbSecTypeVencrypt)
Server did not offer supported security type:
sectype[0] 19 (rfbSecTypeVencrypt)
info: To connect to 'VeNCrypt SSL/TLS' you must use the SSVNC GUI
info: or the ssvnc_cmd wrapper script with the correct cmdline arguments.
Security-Type: 0 (rfbSecTypeInvalid) Latency: 5.90 ms
2023/12/01 11:20:45 VNC Viewer exiting.
所以:
- 我不知道如何实现“要连接到‘VeNCrypt SSL/TLS’,您必须使用 SSVNC GUI 或 ssvnc_cmd 包装器脚本以及正确的命令行参数。”:
如果我只是输入ssvnc
(我假设是“SSVNC GUI”),我唯一能做的就是输入以下内容:
... 当我单击“连接”时,出现“警告:获取服务器证书时出错:从 localhost:3 获取 SSL 证书时发生错误”:
- 我不知道在哪里可以找到这个“ssvnc_cmd 包装脚本”——我的 Ubuntu 机器只是说:
user@laptop:~$ ssvnc_cmd
ssvnc_cmd: command not found
...但即使我找到了它,我应该使用什么选项?
那么,如何在 Raspberry Pi 4(wayvnc)上设置 VNC 服务器,或者在我的 Ubuntu 机器上设置 VNC 客户端(ssvnc
或gvncviewer
),这样我就可以直接连接并使用本地网络上的 VNC 连接,而不必担心根证书的服务器,或者这些错误消息所抱怨的任何内容?
编辑:vinagre,使用以下设置:
...我首先得到的是:
Error creating the ssh tunnel
Permission denied
...然后,重新进入主机设置后,我终于收到提示:
...在我输入正确的密码并点击验证后,我得到:
Connection closed.
Connection to host 192.168.X.X was closed.
如果我没有选中“使用主机...作为 SSH 隧道”,而只是使用主机中的 IP 地址(仍然使用协议:VNC),我会立即收到“连接关闭”的消息,而不会提示任何密码。
所以问题仍然悬而未决——如何与这台 Raspberry Pi 4(带有 Debian 12 bookworm)建立 VNC 连接?
答案1
如果服务器启用了 TLS,请使用支持 TLS 的 VNC 客户端。
TigerVNC 就是这样一个客户端,Vinagre 是另一个。我相信两者都是由 Ubuntu 提供的。
答案2
最终对我有用的是 TigerVNC;安装方式:
sudo apt install tigervnc-viewer
xtigervncviewer 192.168.X.Y
然后我通过命令行运行它:
$ xtigervncviewer 192.168.X.Y
TigerVNC Viewer 64-bit v1.12.0
Built on: 2022-03-25 17:06
Copyright (C) 1999-2021 TigerVNC Team and many others (see README.rst)
See https://www.tigervnc.org for information on TigerVNC.
Thu Dec 7 17:16:35 2023
DecodeManager: Detected 2 CPU core(s)
DecodeManager: Creating 2 decoder thread(s)
CConn: Connected to host 192.168.X.Y port 5900
CConnection: Server supports RFB protocol version 3.8
CConnection: Using RFB protocol version 3.8
CConnection: Choosing security type VeNCrypt(19)
CVeNCrypt: Choosing security type X509Plain (262)
TLS: Could not load user specified certificate authority
TLS: Could not load user specified certificate revocation list
首先我得到一个屏幕,“主机名(192.168.XY)与服务器证书不匹配,您要继续吗?”:
单击“是”后,出现“未知证书颁发者”窗口,最终询问“您是否要为此服务器设置例外?”
请注意,xtigervncviewer
将此服务器(证书?)保存为客户端计算机上的文件中条目~/.vnc/x509_known_hosts
- 因此下次尝试连接时,将不会显示“未知证书颁发者”窗口。
单击“是”后,我将看到 VNC 身份验证窗口:
输入我的 Raspberry Pi 4 的 SSH 用户名/密码后,我终于获得了 Raspberry Pi 4 Debuian 12 桌面的 VNC 连接。