通过命令行启用 Gnome 屏幕共享?

通过命令行启用 Gnome 屏幕共享?

我为基于 Fedora 30(即将推出 32)的“数字标牌客户端”设置了自动启动安装,现在我想在安装中添加“Gnome 屏幕共享”的启用,以便能够获得实际的视觉反馈现在屏幕上的内容。我通过 GUI 中的设置(设置 - 共享 - 屏幕共享)使其工作,并且我还可以通过 gesettings 设置“子设置”,例如

gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'

但我无法找到启用“屏幕共享”本身的设置。当我通过 GUI 启用它时,我可以通过以下方式查看systemctl status

systemctl status | grep gnome-remote | grep -v grep
           │   │ ├─gnome-remote-desktop.service
           │   │ │ └─5572 /usr/libexec/gnome-remote-desktop-daemon

我尝试直接使用 systemctl start 启动此服务以及“守护进程”,但它只会导致Failed to start gnome-remote-desktop-daemon.service: Unit gnome-remote-desktop-daemon.service not found.

有两个非常相似的问题,但似乎已经过时了,因为我没有模式“org.gnome.Vino”:

那么:如何通过命令行启用 Gnome 屏幕共享?

添加:

我投入了大量的时间来让它发挥作用,并且可以解决除一个问题之外的所有问题。我现在知道,我必须以用户身份启动服务,所以我的整个过程是:

# Configuration
gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
gsettings set org.gnome.settings-daemon.plugins.sharing.service:/org/gnome/settings-daemon/plugins/sharing/gnome-remote-desktop/ enabled-connections "['$( grep UUID /etc/sysconfig/network-scripts/ifcfg-enp1s0 | cut -d= -f2)']"

# Start the Remote-Desktop-Service
systemctl start --user gnome-remote-desktop

我将其设置为“密码”,以免有人点击“接受”,将“仅查看”设置为“假”,以便能够控制它并设置我的网络接口的 UUID。之后我可以启动正确配置的服务。

所以最后一个缺少的步骤是,我无法通过命令行设置密码。我尝试过像葡萄酒和秘密工具一样,但它不起作用

gsettings set org.gnome.Vino vnc-password $(echo -n "myPassword"|base64)
secret-tool store --label='Label' {attribute} {value}

秘密工具的问题可能是,Gnome 密钥环中的原始条目没有“属性”和“值”,但这些对于秘密工具来说是强制性的,所以我无法以 1:1 重现该条目。

那么:有人知道如何通过 cli 正确设置 gnome-screen-sharing 的密码吗?

答案1

所以我在研究了几个小时后做到了。

你的指示是正确的。但是,GNOME 不允许 VNC 连接如果您的屏幕被锁定。因此,使用loginctl list-sessionsyou 可以列出你的会话。找到图形化的(应该有一个标识符或类似的)并使用where comes from列seat0解锁它。为了验证,您可以而且应该拥有。完成后,尝试通过 VNC 登录。对我来说,它立即起作用了。loginctl unlock-session XXIDlist-sessionsloginctl show-session XLockedHint=no

回顾一下,以下是所有步骤:

gsettings set org.gnome.desktop.remote-desktop.vnc auth-method 'password'
gsettings set org.gnome.desktop.remote-desktop.vnc view-only false
echo -n 'password' | secret-tool store --label="GNOME Remote Desktop VNC password" "xdg:schema" "org.gnome.RemoteDesktop.VncPassword"
systemctl --user start gnome-remote-desktop.service
loginctl unlock-session $(loginctl --no-legend --value list-sessions | awk '/seat/ { print $1}')

不需要允许网络接口或其他任何东西

答案2

我已经清理并分叉了一个可以在禁用 Wayland 的 ubuntu 22.04 上运行的脚本。

https://gist.github.com/Pieter81/78a3a087f142d712951f8352bb9ab2ba

相关内容