背景
一台主机装了Ubuntu22.04桌面版,Ubuntu桌面版不像服务器版,有些功能还是需要GUI来操作。因为主要用远程连接,打算可以用RDP/VNC连接,所以没有显示器。尝试一下却发现没能达到预期的效果。
主要问题是,每次开机之后,在远程机器只能连上SSH,VNC和机器自带的RDP都是无法连接上的。只有用键鼠登录一次之后,才能连上RDP/VNC。
解决过程
- 第一想法,有没有什么办法可以用命令行解锁屏幕?查找资料,网传有这么个命令可以用命令行解锁(不需要sudo),但不起作用。
loginctl unlock-session
- 论坛里有人回答说直接勾选开机后自动登录,且不设置密码。这个应该可以,但是不太接受能这种做法。继续搜索。
- XRDP可以在没有本地登录过的情况下允许远程桌面。安装XRDP可以解决这个问题。
解决方案
- 确保Ubuntu设置中的远程桌面已经关闭,安装XRDP
sudo apt update
sudo apt install xrdp -y
sudo usermod -a -G ssl-cert xrdp
sudo systemctl restart xrdp
- 如果你的ufw防火墙是激活状态(通过
ufw status
查看),那还需要额外放行192.168.1.*网段的连接请求。
sudo ufw allow from 192.168.1.0/24 to any port 3389
sudo ufw reload
- (可选)修复色彩配置文件的问题。默认的Polkit在每次XRDP连接上以后都会要求认证管理员权限来增加色彩配置文件,如果经常登录远程桌面可以修复这个问题。执行一下命令并重启机器。
cat <<EOF | sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
-
试一下效果效果。重启,不解锁机器,直接连远程桌面
补充资料
XRDP是微软RDP协议的开源实现(比VNC好用),在Ubuntu22.04之前没有内置RDP,如果要用RDP协议都是要手动安装xrdp。然而22.04内置的RDP和xrdp有一些差异,服务名字叫做
gnome-remote-desktop.service
,它不支持本地登录前远程连接。
参考链接
- 用命令行解锁Ubuntu锁屏
https://askubuntu.com/questions/341014/unlock-login-screen-using-command-line - 如何在锁屏状态下登录远程桌面
https://askubuntu.com/questions/1411504/connect-when-remote-desktop-is-on-login-screen-or-screen-locked-without-autolog - 如何在Ubuntu22.04系统下安装XRDP
https://tecadmin.net/how-to-install-xrdp-on-ubuntu-22-04/ - 如何修复 Ubuntu上“创建颜色配置文件/托管设备需要身份验证“的问题
https://devanswers.co/how-to-fix-authentication-is-required-to-create-a-color-profile-managed-device-on-ubuntu-20-04-20-10/