我刚刚安装了 Ubuntu 22.04 LTS,很高兴看到它内置了一个远程桌面服务器,除了 VNC 之外还支持 MS RDP。它有一些与密码相关的怪癖,我在这篇文章中发现了这一点: 22.04 - 远程桌面共享身份验证密码每次重启都会更改
我希望在启动时无需登录即可使用远程桌面,或者如果它使用自动登录,它会保留密码,这样我就可以无头运行系统并通过 RDP/VNC 进入它。gnome-remote-desktop 似乎作为用户服务而不是系统服务运行,因此除非用户登录,否则它不会处于活动状态。而且它在密钥环解锁之前启动,因此每次启动时都会创建一个新密码。似乎有很多方法可以解决这些问题,但我不确定哪种方法最好,甚至不确定这些方法是否可行:
继续使用自动登录,以便远程桌面可以作为用户服务运行,但以某种方式修复它,以便它保留相同的密码(理想情况下不完全禁用密钥环)。
禁用内置的远程桌面功能并安装其他 RDP/VNC 服务器并手动配置它,但这会与内置服务器冲突吗?不确定。
是否可以将 gnome-remote-desktop 用户服务转换为系统服务?如果可以,如果不在用户密钥环中,它将把密码存储在哪里?这真的是一个选择吗?
还有别的吗?!
欢迎提出任何建议。谢谢。
答案1
我已经在虚拟机中尝试过这个解决方案
- 禁用内置的远程桌面功能并安装其他 RDP/VNC 服务器并手动配置它,但这会与内置服务器冲突吗?不确定。
我在此提出的解决方案是不要使用本机桌面共享,而是使用xrdp
服务器。
禁用本机桌面共享(或不禁用)
我发现禁用远程桌面xrdp
在我按照下一步安装后,没有任何效果。重新启动后,远程桌面设置恢复为如下所示:
确保未选中“启用旧版 VNC 协议”。
笔记:此设置页面显示随机生成的密码。忽略它。当您使用xrdp
Ubuntu 中的 Remmina 等客户端或 Windows 的默认 RDP 应用程序时,请使用您的登录密码
安装xrdp
在我安装之前,上述设置在我全新安装的 Ubuntu 22.04 中不起作用xrdp
。您必须物理访问无头计算机或使用来ssh
完成此步骤。
通过Ctrl++打开终端并输入:AltT
sudo apt install xrdp
系统将提示您输入密码。输入密码时光标不会移动。这是正常现象。
如果您ufw
启用了(简单防火墙),则必须使用以下命令打开端口 3389:
sudo ufw 允许 3389。
xrdp
使用以下命令验证服务器是否已启动并正在运行:
sudo systemctl status xrdp
记得退出
本地注销是最重要的部分。如果您通过物理方式登录计算机并连接键盘、鼠标、显示器等,则xrdp
在您注销之前将无法正常工作。
xrdp
关于本地和远程登录的注意事项
不要使用计算机启动时自动登录桌面!
与 Windows 中的 RDP 不同,xrdp
只有在以下情况下才有效:未登录到远程计算机本地。这意味着您亲自前往远程计算机并登录,然后不注销就离开计算机,xrdp
这是行不通的。
同样,通过远程登录时,xrdp
您可以断开连接而不注销,会话将继续。但是,在这种情况下,您将无法登录本地直到您远程注销。
对于无头计算机来说这不是问题,因为您从未在本地登录过。
XRDP/RDP 客户端的两点
1. 会话、用户和密码
当您尝试使用 (X)/RDP 访问远程计算机时,您可能会在 RDP/XRDP 客户端上看到此对话框:
- 将会话设置为默认的 XOrg。
- 使用远程 Ubuntu 计算机的用户名
- 使用远程 Ubuntu 计算机用户的登录密码。设置 (x)RDP 客户端时,请勿使用随机生成的密码。
如果您使用 Remmina 并选择将您的用户名和密码与连接配置一起存储,则您将不会看到此对话框。
2. 桌面可能看起来不同
当我使用 Remmina 通过 xrdp 进入虚拟机中的 Ubuntu22.04 时,并没有看到默认的 Ubuntu 桌面,而是出现了如下所示的 Gnome 42 桌面:
可能有一些方法可以将其改回 Ubuntu 桌面,但我没有探索过。
要将桌面的外观从默认的 gnome 更改为 Ubuntu,请创建/home/$USER/.xsessionrc
包含以下内容的隐藏文件:
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
来源:如何使用 xRDP 登录远程服务器上的 Ubuntu(非 GNOME)会话?
希望这可以帮助
答案2
答案3
我在寻找为什么 Remmina 在显示器或电视打开时工作正常,但在显示器/电视关闭时屏幕变黑的答案时发现了您的帖子。我认为这可能与查看设备和 Ubuntu 之间的握手通信有关。(20.04 连接到电视和 22.04 连接到显示器时出现同样的问题。)
无论如何,对于自动登录,我已完成以下操作。(说明基于 22.04;20.04 类似。)
自动登录:
- 设置 > 用户 > (右上角解锁)> 自动登录 → 开启(右侧白点)
- 设置 > 共享 →
标题处的开关:打开。
远程桌面→进入==>子菜单:
- 远程桌面:开启
- ☑ 启用旧版 VNC 协议
- 子菜单:勾选“需要密码”
- 远程控制开启
- 认证部分:
- 用户名: barry
- 密码
- Remmina 使用来访问系统 – 最多 8 个字符。
- 此密码也由 .config/autostart/password_fix.desktop 重置(如下)
媒体共享开启,加上适合子菜单
远程登录,加上允许 ssh 的子菜单
创建文件: .config/autostart/password_fix.desktop
[Desktop Entry]
Type=Application
Name=Password Fix
Comment=Corrects password in Settings > Users for use by Remmina
Exec=/usr/bin/python3 -c "import keyring;keyring.set_password('login','user','Remmina_Password');"
全部Exec=
一行。'user' 是您的用户名;'Remmina_Password' 是 Remmina 用于登录的内容。旧版 VNC 协议将密码限制为 8 个字符。
答案4
无头 Chrome 远程桌面非常棒,视频流畅!比 Windows 上的 RDP 更快。 https://cloud.google.com/architecture/chrome-desktop-remote-on-compute-engine