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入门爱好者不太友好,还请见谅!

标签: none

添加新评论