[Ubuntu 20.04.1 LTS,x64 GNOME 3.36.3]
我将这台机器的屏幕共享保持打开状态,用于Pi孔服务器。但是,每次我重新启动时,屏幕共享都不起作用,我需要转到物理 PC,禁用 SC,然后重新启用它。然后它又可以正常工作了。我的屏幕共享设置:
有关如何修复此问题的想法,以便我不需要在每次重启后重置 SC?
答案1
我找到了一个更安全的解决方案。互联网上提出的典型解决方案是使用“密码和密钥”应用程序为登录密钥环设置一个空白密码。然而,这非常不安全,因为设备上的所有密码都将以明文形式存储。
我决定在“密码和密钥”应用程序中创建一个没有密码的新密钥环,并将其设置为默认密钥环。然后我继续从登录密钥环中删除 VNC 密码。然后我重新启动计算机以确保新密钥环是默认密钥环。重新启动后,我在屏幕共享设置中重新输入了 VNC 密码。这会将 VNC 密码存储在新的不安全密钥环中。然后返回“密码和密钥”应用程序并再次将登录密钥环设置为默认值。再次重新启动,现在 VNC 密码保持保存,默认密钥环也回到了登录密钥环,确保设备上保存的所有未来密码都将被加密。
所以从本质上讲,我只是将以纯文本保存所有密码的不安全性降低为仅以纯文本存储 VNC 密码。
答案2
也遇到了这个问题,在网上查了一番后发现关于错误的讨论。呃,好吧,这是一个错误,取决于你怎么看。用户 Onur Samiloglu 指出,这与密钥环未解锁有关:
我找到了一个解决方法。
似乎在启动 remote-desktop-daemon 时密钥环仍处于锁定状态,因此 VNC 服务器无法读取密码。当我打开 Seahorse 时,它显示密码仍处于锁定状态。我的 GNOME 设置为自动登录,如果这有区别的话。
密钥环可能无法解锁的原因是它在登录时未解锁。或者(像我一样)您自动以用户身份登录。他们继续提出如何纠正问题的想法(我已将其粘贴在下面以供历史参考),但我个人并不喜欢这种方法,因为它需要以明文形式保存可能是您的登录密码的副本。我有一个替代方案,但如果没有这个用户,我甚至不会想出这个方案,所以:非常感谢 Onur Samiloglu 的见解!
我使用的解决方案是从密钥环中删除密码要求(我使用的是 Ubuntu 21.10)。具体操作如下:
- 打开“密码和密钥”应用程序
- 右键单击“登录”密钥环并点击“更改密码”。例子
- 输入您的密码(可能是您的登录密码,除非您已更改密码)
- 对于新密码,请输入空白——您将收到一条警告,提示密钥环将始终处于解锁状态。
- 重新启动并再次重新启用 VNC
- 再次重新启动以确保它仍然正常工作。
对任何阅读此文的人都应发出警告:如果您使用登录密钥环来存储任何其他敏感密码,您可能需要寻找其他解决方案,因为这绝对不安全。就我的目的而言,这是完美的,因为这台机器实际上只是用来运行 Plex。
请记住,在用户登录 Pi 上的 Ubuntu 之前,无法使用 GUI 启用 VNC;用户必须登录桌面环境才能使 VNC 工作。这可能可以通过另一个 VNC 服务器应用程序或对 Ubuntu 使用的 Vino/gnome-remote-desktop 进行一些配置来实现(取决于您的 Ubuntu 版本),但我不知道。
您可能最好在这里添加您对这个错误的经验,以便可以在未来版本的 ubuntu 中构建更好的解决方案:https://bugs.launchpad.net/ubuntu/+source/gnome-remote-desktop/+bug/1928536
Onur Samiloglu 的解决方案:
我正在终止当前正在运行的 gnome-keyring-daemon,创建一个新的未锁定的守护进程,然后启动它。然后我重新启动 remote-desktop-daemon,然后就好了!远程桌面密码被接受了!!!
命令(以用户身份执行,而不是 root 身份):
# killall gnome-keyring-daemon # echo -n "keyringpasswordNOTVNCPASSWORD" | gnome-keyring-daemon -l -d # gnome-keyring-daemon -s # systemctl --user restart gnome-remote-desktop
这可能是桌面自动登录或密钥环解锁的一般问题。VNC 服务器拒绝密码可能只是一种症状,而不是实际的错误。