最近在折腾 Ubuntu 22.04 的远程桌面功能,希望达到这样一个效果:
-
Ubuntu 开机后自动进入桌面
-
不需要本地再手动登录一次
-
Windows 下直接用 MSTSC 就能远程连接
实际配置下来,关键不只是打开远程桌面,还要处理 自动登录后 keyring 没有解锁 的问题。下面把完整设置过程整理一下。
一、Ubuntu 打开远程桌面相关选项
先进入:
Settings → Sharing
打开以下选项:
-
Remote Desktop / 远程桌面
-
Desktop Sharing / 远程共享
-
Remote Control / 远程控制
-
Remote Login / 远程登录
其中比较关键的是:
-
Remote Control:允许远程端控制本机桌面
-
Remote Login:允许通过 RDP 登录
-
Authentication:设置远程连接使用的用户名和密码
这里建议把远程桌面的用户名和密码都设置好,后面 Windows 的 MSTSC 连接时要用到。
二、开启系统自动登录
为了让机器重启后直接进入桌面,还需要打开自动登录。
进入:
Settings → Users
然后:
-
解锁当前页面
-
选中当前用户
-
打开 Automatic Login / 自动登录
这样 Ubuntu 重启后会自动进入当前用户桌面,而不需要在本机手动输入密码。
三、用 Seahorse 将 Login keyring 改为空密码
这是最关键的一步。
问题现象
一开始虽然已经:
-
打开了远程桌面
-
打开了自动登录
-
设置了远程桌面用户名和密码
但系统重启后,Windows MSTSC 依然连不上。
排查后发现:
-
Ubuntu 自动登录进入桌面后,
grdctl status里显示
Username: (empty)
Password: (empty) -
只有在本机 手动锁屏,再输入系统密码登录一次 之后,
grdctl status才会变成
Username: (hidden)
Password: (hidden)
这说明问题不在 RDP 服务本身,而在于:
自动登录虽然进入了桌面,但没有自动解锁 GNOME Keyring。
远程桌面的用户名和密码保存在 keyring 中,keyring 没解锁,RDP 就读不到凭据。
安装 Seahorse
先安装:
sudo apt update
sudo apt install seahorse
安装完成后,打开:
Passwords and Keys / 密码和密钥
修改 Login keyring 为空密码
操作步骤如下:
-
在左侧找到 Passwords
-
找到其中的 Login
-
右键 Login
-
选择 Change Password
-
输入当前旧密码
-
新密码留空
-
确认新密码也留空
-
确认警告提示
这样设置后,Login keyring 不再需要额外输入密码解锁。
为什么这一步很重要
因为 Ubuntu 自动登录后,如果 keyring 仍然是加密状态,那么远程桌面保存的凭据就无法读取。
改成空密码后,系统自动进入桌面时,远程桌面服务就可以直接读取到这组凭据,从而支持开机后直接远程连接。
四、重新设置远程桌面凭据
为了确保远程桌面的用户名和密码已经正确写入,建议执行一次:
grdctl rdp set-credentials [user] [your_rdp_password]
systemctl --user restart gnome-remote-desktop.service
然后查看状态:
grdctl status
如果配置正常,应该看到类似:
RDP:
Status: enabled
Username: (hidden)
Password: (hidden)
如果这里仍然显示 (empty),说明远程桌面凭据还没有正确写入或读取。
五、Windows 下使用 MSTSC 连接
Ubuntu 端设置完成后,就可以在 Windows 上直接使用 MSTSC 连接了。
打开远程桌面客户端
按 Win + R,输入:
mstsc
然后输入 Ubuntu 主机的 IP 地址。
登录信息
输入你在 Ubuntu 远程桌面设置中配置的:
-
用户名
-
密码
连接成功后,就可以直接看到 Ubuntu 桌面。
六、验证是否实现“开机即能连”
最终验证方法很简单:
-
重启 Ubuntu
-
等待系统自动登录进入桌面
-
不要在本机手动锁屏或再次输入密码
-
直接在 Windows 使用 MSTSC 连接
如果这时可以直接连上,说明配置成功。
也可以在 Ubuntu 本机执行:
grdctl status
确认是否为:
Username: (hidden)
Password: (hidden)
如果重启后又变成 (empty),那说明 keyring 仍然没有正确自动可用。
七、几点说明
1. 远程桌面密码不是系统登录密码
Ubuntu 远程桌面的 RDP 密码,和 Linux 用户本地登录密码不是一回事。
MSTSC 用的是远程桌面设置里的那组凭据,不一定等于系统密码。
2. 自动登录不等于 keyring 自动解锁
这是这次踩坑的核心。
系统虽然自动进入桌面了,但 keyring 不一定能直接用,所以远程桌面会表现为“服务启动了,但无法认证”。
3. 将 keyring 设为空密码会降低本机 secret 的保护强度
这样做的代价是,本机保存的密码和其他 secret 不再受 keyring 密码保护。
如果是家用机器、实验机或内网设备,一般可以接受;如果是高安全环境,需要谨慎考虑。
八、总结
要让 Windows MSTSC 在 Ubuntu 22.04 开机后直接远程连接,完整步骤如下:
-
在 Ubuntu 设置中打开:
-
远程共享
-
远程控制
-
远程登录
-
-
在 Users 中打开自动登录
-
用 Seahorse 将 Login keyring 改为空密码
-
确保远程桌面的用户名和密码已经正确保存
-
在 Windows 使用 MSTSC 连接 Ubuntu
这套配置的关键点不只是“打开远程桌面”,而是要解决 自动登录后 keyring 不解锁 的问题。只有这样,才能真正做到 Ubuntu 重启后,Windows 直接 MSTSC 连接成功。

9843

被折叠的 条评论
为什么被折叠?



