GNOME Wayland 远程桌面
这段时间在折腾Waydroid on RISC-V,需要用到GNOME桌面,因而有了远程控制的需求。
我还没折腾过wayland下的远程桌面,不过好在GNOME有个开箱即用的远程桌面(设置-共享打开就行),RDP连接。但是问题来了:机子扔在家,我在学校,gnome远程桌面需要登录之后打开共享设置才能用,家里人人工协助不太现实。
因此折腾的目标就是:无感地开机自启GNOME的远程桌面功能
注:本文可能具有时效性。折腾的时间是2024年8月,系统及GNOME版本Ubuntu 23.04(RISC-V),Gnome 45.2,如果您的版本特别是GNOME版本与本文差异较大(发布时间较早/较晚的版本),建议停止阅读本文。
第一步:安装Allow Locked Remote Desktop扩展
Gnome商店链接在这,浏览器安装GNOME集成后应该可以直接安装。但是我的机子上浏览器实在太卡,所以我是通过Gnome Extension Manager搜索安装的。在软件里启用这个扩展就行,重启自动生效。但是此时只是完成了一半的工作,免去了每次重启后需要重复打开共享设置的麻烦,也是直接搜索互联网得到的直接的答案。
但此时存在一个问题:重启之后需要登录一次之后才会自动登录。
sudo apt-get install gnome-shell-extension-manager
第二步: 开启自动登录
那么很自然的一个想法是,我直接让他自动登录不就完了。参照官方教程,修改/etc/gdm/custom.conf
中 [daemon]
这一节:
[daemon]
AutomaticLoginEnable=True
AutomaticLogin=your-username
但是这么做了之后,发现远程桌面确实能够自动启动了,但是连接不了哇,客户端会报错。
利用远程桌面的命令行管理工具:grdctl status
,我们发现此时密码为None(未设置),但是在SSH下尝试通过grdctl设置密码时grdctl长时间不返回,这就有点奇怪了。
后来我猜密码可能是存储在GNOME的钥匙环里,为了验证猜想,我根据这个教程,尝试直接在SSH里解锁钥匙环。
password="your-pwd"
killall -q -u "$(whoami)" gnome-keyring-daemon
export $( echo -n "$password" | gnome-keyring-daemon --daemonize --login ) >/dev/null 2>&1
grdctl rdp set-credentials "test_user" "test_password"
grdctl status
再透过grdctl
设置密码,grdctl
成功执行,之后重启服务systemctl --user restart gnome-remote-desktop
,就可以登录了。
但是此时还是不太完美,每次重启都要这么哗啦啦整一下有点麻烦,于是有了一个思路:那我让钥匙环自动解锁,gnome-remote-desktop启动就能读出密码了。
第三步:钥匙环自动解锁
(这个标题大雾)其实所谓自动解锁,就是没有锁...把钥匙环的密码清空就行,钥匙环有好多个环(ring),我们只需要解锁Login
这个就行。
安装seahorse
这个工具,在桌面中启动,右键左侧菜单栏的Login
然后选择右键菜单里Change Password
选项,密码不填直接保存就行。
sudo apt-get install seahorse
到这里就大功告成了,远程桌面能够无感的自动启动,也算完美了。
懒得配图了,纯文字可能对Linux入门爱好者不太友好,还请见谅!