我想远程访问我的 Xubuntu 桌面计算机,并查看与远程机器显示器上显示的桌面相同默认情况下,同时使用 VNC 和 xrdp 都会获得一个新的桌面会话,而我不想要这个。
可能性如下:
我似乎能得到的唯一半途而废的解决方案是使用
UNIXPW_DISABLE_SSL=1 x11vnc -unixpw -localhost
并创建我自己的systemd 服务文件然后通过 SSH 隧道连接到该地址。
葡萄酒
我使用丹麦语键盘,但vino
似乎不支持该键盘,原因是漏洞。无法使用æøå
或任何特殊字符(例如)<>|;.
对我来说,vino 无法使用。此外,vino 在 XFCE 上的支持很差,因为vino-preferences
已被删除。
x11vnc
x11vnc
大部分情况下都有效,但是,似乎没有任何方法可以安全地存储密码。使用 VNC 密码文件是可能的,但仅限于8 个字符和和很容易解密,所以充其量只是一种模糊的安全性。x11vnc
使用-nopw
(-local
因此它不能通过网络使用,需要通过 SSH 隧道使用)可以工作,但桌面计算机上的任何进程(以任何用户身份运行)都可以访问我登录的桌面,这并不好。
x11vnc
有安全连接选项:-ssl
和-stunnel
。对于-ssl
,Remmina 显示:“TLS 握手失败:已收到 TLS 致命警报。”并 xtightvncviewer
显示:“服务器未提供支持的安全类型”,而如果服务器使用-stunnel
这两个查看器,则只是坐在那里,没有抱怨,但也没有启动 VNC 窗口。
x11vnc
有一个-unixpw
“将使用 su(1) 程序来验证用户密码”的命令。但这需要 或-ssl
和,但当我使用 Remmina 或 时, 或 都不起作用-stunnel
。但根据手册页,设置环境变量“禁止需要或”。-localhost
-ssl
-stunnel
xtightvncviewer
UNIXPW_DISABLE_SSL=1
-ssl
-stunnel
然后UNIXPW_DISABLE_SSL=1 x11vnc -unixpw -localhost
通过 SSH 隧道运行它似乎几乎是涅槃。但是-unixpw
我无法将凭据存储在 Remmina 中(将密码存储在 中gnome-keyring
)。但每次都必须输入它们。坦率地说,在我看来,这看起来很糟糕/用户体验很差。
偏磷酸钠
xrdp
似乎要么启动一个独立的桌面会话,要么可以连接到正在运行的桌面 - 鼓声 -vino
或者x11vnc
所以我得到了上面概述的所有问题,以及 xrdp 引入的任何问题。
真的没有更好的吗安全的访问我的桌面的方法?真的吗?
我最终做了什么
编辑:最后,我选择了极度不安全-rfbauth /home/user/.vnc/passwd
(和另一个密码!)而不是-unixpw
。结合-localhost
使用 SSH 隧道,因为的用户体验-unixpw
实在太差了。l。并且需要添加更多选项,因此最终的 systemd 配置为:
[Unit]
Description=x11vnc VNC Server for X11
Requires=lightdm.service
After=lightdm.service
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /var/run/lightdm/root/:0 -display WAIT:0 -forever -shared -rfbauth /home/user/.vnc/passwd -rfbport 5900 -localhost
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
RestartSec=2
SuccessExitStatus=3
[Install]
WantedBy=graphical.target
答案1
在远程设置 ssh 和 x11vnc。确保您有权限或设置权限。然后命令控制它们全部:
ssh <remote address> -L 5900:localhost:5900 "x11vnc -no6 -localhost -auth /var/run/lightdm/root/:0 -display :0"
然后 vnc 到本地主机...