在 SUSE Linux Enterprise Server 16.0 上配置远程桌面服务器
- 内容
本文介绍如何在 SUSE Linux Enterprise Server 上设置 GNOME 远程登录桌面服务器。
- 原因
远程桌面服务器即使没有专用图形硬件,也能承载多个用户的访问。
- 工作量
配置过程需要 5 分钟时间。
- 目标
学习如何设置支持多用户访问的远程登录桌面服务器。
- 要求
已安装 GNOME 且用作远程桌面服务器的系统
一个或多个可通过 RDP 查看器访问服务器的客户端
1 GNOME 远程桌面是什么? #
GNOME 远程桌面支持三种运行模式:远程协助远程桌面服务器、单用户远程桌面服务器和远程登录桌面服务器。该功能甚至支持无外设运行模式,即服务器无需配备图形处理器 (GPU)。这一特性对服务器而言尤为实用 - 性能强大的系统无需图形硬件即可为多个用户提供服务。
GNOME 远程桌面包含两种协议后端:RDP 和 VNC。并非所有运行模式都支持所有协议后端。
2 配置 GNOME 远程桌面 #
本章介绍如何配置 GNOME 远程桌面,使其与 GNOME 显示管理器 (GDM) 集成。
2.1 简介 #
GNOME 远程桌面支持与 GNOME 显示管理器集成,以实现远程登录功能。其工作原理为:远程用户首先通过系统级身份凭证进行身份验证,访问图形登录界面,随后使用个人用户身份凭证登录系统。
2.2 要求 #
安装了 GNOME 桌面环境且用作服务器的 SUSE Linux Enterprise 系统。在安装系统时,您可以通过软件 › 修改选择 › GNOME 桌面环境 (Wayland) 选择 GNOME。对于已运行的系统,可通过命令
zypper in -t pattern gnome安装 GNOME。一个或多个客户端,客户端需安装
gnome-connections、remmina或其他支持 RDP 协议的查看器。
2.3 配置 #
以下过程介绍如何配置 GNOME 远程桌面,使其与 GNOME 显示管理器集成。
创建用于存储 TLS 加密密钥和证书的目录:
>sudo-u gnome-remote-desktopmkdir-p~/.local/share/gnome-remote-desktop/安装 gnome-remote-desktop 软件包时,会自动创建
gnome-remote-desktop用户。其home目录为/var/lib/gnome-remote-desktop。生成用于加密的 TLS 密钥和证书,具体有以下两种方式:
通过
openssl生成。要生成一个 4096 位且有效期为 365 天的 RSA 密钥,请运行以下命令:>sudo-u gnome-remote-desktopopensslreq -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \ /C=COUNTRY_CODE/ST=STATE/L=LOCALITY/O=ORGANIZATION/CN=example.net \ -out~/.local/share/gnome-remote-desktop/tls.crt\ -keyout~/.local/share/gnome-remote-desktop/tls.key请替换命令中的国家代码、州省、城市、组织和通用名称,或省略不需要的参数。国家代码需使用 ISO 3166-1 alpha-2 两位代码,相关信息可从 https://www.iso.org/obp/ui/#search/code/ 上查询。
如果希望通过交互式命令引导证书生成流程,可使用 gnutls 软件包中的
certtool工具:>sudozypper in gnutls>sudo-u gnome-remote-desktopcerttool--generate-privkey --outfile~/.local/share/gnome-remote-desktop/tls.key>sudo-u gnome-remote-desktopcerttool--generate-self-signed --load-privkey~/.local/share/gnome-remote-desktop/tls.key
使用
grdctl配置 GNOME 远程桌面。为 GNOME 远程桌面配置加密:
>sudogrdctl--system rdp set-tls-key~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.key>sudogrdctl--system rdp set-tls-cert~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt设置用于通过 RDP 访问登录管理器的系统身份凭证:
>sudogrdctl--system rdp set-credentials此处的用户名和口令组合与个人用户身份凭证不同。所有用户均需使用此 RDP 系统身份凭证访问 GNOME 显示管理器,再通过个人用户身份凭证登录。
启用 RDP 协议:
>sudogrdctl--system rdp enable
启用并启动 GNOME 远程桌面服务:
>sudosystemctlenable --now gnome-remote-desktop.service开放防火墙默认 RDP 端口的连接权限:
>sudofirewall-cmd--permanent --add-service=rdp>sudofirewall-cmd--reload
2.4 总结 #
至此,GNOME 远程桌面服务器已配置完毕。可通过 gnome-connections、remmina 或其他支持 RDP 协议的查看器连接该系统。
2.5 查错 #
如果连接远程桌面服务器时遇到问题,可按以下步骤进行查错。
如果能连接到 GNOME 显示管理器,但无法以用户身份登录,可尝试通过
ssh连接以验证用户口令是否正确。如果能连接到远程桌面服务器,但 GNOME 远程桌面不接受 RDP 连接的系统身份凭证,则可能是因为在服务已运行时配置了身份凭证。需重启服务以应用更改:
>sudosystemctlrestart gnome-remote-desktop.service如果 RDP 系统身份凭证仍不被接受,可重置身份凭证:
>sudogrdctl--system rdp clear-credentials>sudogrdctl--system rdp set-credentials>sudosystemctlrestart gnome-remote-desktop.service如果使用 RDP 查看器无法连接到远程桌面服务器,请检查 gnome-remote-desktop 服务是否正在运行:
>sudosystemctlstatus gnome-remote-desktop如果服务未运行,则启动该服务:
>sudosystemctlstart gnome-remote-desktop.service如果
systemd提示gnome-remote-desktop.service的配置已更改,需让systemd重新加载配置并重启服务:>sudosystemctldaemon-reload>sudosystemctlrestart gnome-remote-desktop.service
检查 GNOME 显示管理器是否正在运行:
>sudosystemctlstatus display-manager.service如果出现警告信息,则重启显示管理器:
>sudosystemctlrestart display-manager.service检查
gnome-remote-desktop是否在默认 RDP 端口 3389 上侦听:>sudoss-tulnp | grep :3389检查防火墙端口是否已开放:
>sudofirewall-cmd--query-service=rdp检查客户端是否能连接到远程桌面服务器。
如果通过主机名连接服务器,检查客户端是否能正确解析该主机名:
>hostSERVER_HOST_NAME如果无法解析服务器主机名,尝试通过 IP 地址连接。
如果 RDP 查看器无法通过 IP 地址连接远程桌面服务器,尝试 ping 服务器:
>ping-c 5 SERVER_IP如果能 ping 通 IP 地址,尝试通过该 IP 地址连接远程桌面服务器。如果无法 ping 通,则检查网络设置。
3 更多信息 #
更多配置示例可参考 GNOME 远程桌面的 README 文件。安装 gnome-remote-desktop 软件包后,该文件位于
/usr/share/doc/packages/gnome-remote-desktop/README.md。也可通过以下链接在线访问该文件:https://github.com/GNOME/gnome-remote-desktop/blob/master/README.md。grdctl的完整选项列表可通过man 1 grdctl命令查看。
4 法律声明 #
版权所有© 2006–2025 SUSE LLC 和撰稿人。保留所有权利。
根据 GNU 自由文档许可证 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可证附带不可变部分。许可版本 1.2 的副本包含在“GNU Free Documentation License”部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。