[Ubuntu Server 22.04] Ubuntu 桌面远程桌面协议(RDP)设置

注意事项

请注意事项

请留意以下事项

请注意以下事项

请留意以下注意事项

附上所指链接中的内容。

[Ubuntu Server 22.04] 个人初始设置备忘录

总结

“Table of Contents” -> 「目录」

1. 安装Tailscale
2. 安装WeTTY
3. 安装Ubuntu桌面(GDM3 Ubuntu自定义),设置自动登录
4. 设置Ubuntu桌面的RDP
概述
构建
– 设置RDP
0. 从GNOME设置启用RDP
1. 创建openSSL证书和密钥文件
2. 启用RDP并解除只读限制
3. 解锁GNOME钥匙链
解锁Keyring(CLI)
4. 设置RDP用户认证信息
– 检查
1. 检查各种状态
2. 修改设置
3. 重新启动RDP服务
– 使用RDP连接
1. 将gnome-remote-desktop注册为服务
2. 启动GNOME桌面,解锁钥匙链
3. 从任意客户端连接
※如果要将RDP客户端屏幕扩展到其他显示器
※关于无头模式
– 故障排除
引用来源、参考来源、参考网站
5. 安装PowerTOP TLP
6. 自动重新启动设置(Crontab,rtcwake)

“Explanation” – “解释”

GNOME RDP 是从 Ubuntu 22.04 开始内置的 RDP 主机。

“目标”

在不连接显示器的服务器用途的个人电脑上,使用桌面环境。

「必需品」

・虚拟显示适配器(虚拟插头)
(若使用无屏幕连接,则不需要)

确定事项

・Ubuntu 22.04 LTS 将安装 GNOME 42。
・请先执行 “[Ubuntu Server 22.04] Ubuntu-Desktop 安装和自动登录设置”。
・在 ubuntu 22.04 中使用 GNOME RDP,音频可能无法输出。

建設

RDP配置

请在 GNOME 设置中启用 RDP。

将org.gnome.desktop.remote-desktop.rdp的enable属性设置为true。

1. 创建 OpenSSL 证书和密钥文件。

如果在执行 grdctl status 时未设置任何内容在 “TLS certificate” 和 “TLS key” 中(如 Ex.1 所示),请执行 bash:1。
※如果已经设置了,那么无需进行此操作。请继续进行 “2. 启用 RDP 并取消仅查看”。

USER@servername:~$ grdctl status
RDP:
        Status: disabled
        TLS certificate: 
        TLS key: 
        View-only: yes
        Username: (empty)
        Password: (empty)
# 创建目录
mkdir -p /home/$(whoami)/.local/share/gnome-remote-desktop/
cd /home/$(whoami)/.local/share/gnome-remote-desktop/
# 创建证书和密钥
openssl genrsa -out tls.key 4096
openssl req -new -key tls.key -out tls.csr
openssl x509 -req -days 730 -signkey tls.key -in tls.csr -out tls.crt
# 把名字 gnome-remote-desktop 对标
mv tls.crt rdp-tls.crt
mv tls.key rdp-tls.key
# 设置创建的证书和密钥。
grdctl rdp set-tls-cert /home/$(whoami)/.local/share/gnome-remote-desktop/rdp-tls.crt
grdctl rdp set-tls-key  /home/$(whoami)/.local/share/gnome-remote-desktop/rdp-tls.key
# 确认
grdctl status

自己证明书”openssl req -new -key tls.key -out tls.csr”的例子
· 橙色部分是输入内容。
· ServerName请根据喜好设定。
(Ubuntu的默认是GNOME)
· 在红色字处,请不要输入任何内容。
※即使不输入任何内容,按下Enter即可进入下一项。
USER@servername:~$ openssl req -new -key tls.key -out tls.csr

你即将被要求输入将被纳入到您的证书请求中的信息。
您即将输入的是所谓的专有名称或DN。
有一些字段,您可以将其中一些留空。
对于某些字段,将有一个默认值。
如果您输入“.”,那么该字段将保持空白。
—–
国家名称(2个字母代码)[AU]:JP
州或省名称(全名)[Some-State]:东京
地区名称(例如,城市)[]:新宿区
组织名称(例如,公司)[Internet Widgits Pty Ltd]:
组织单位名称(例如,部门)[]:
通用名称(如服务器FQDN或您的名称)[]:ServerName
电子邮件地址[]:
请输入以下“额外”属性
用于与您的证书请求一起发送
挑战密码[]:
可选的公司名称[]:

2.启用 RDP 并停用只读视图
grdctl rdp enable
grdctl rdp disable-view-only
3.解锁 GNOME 钥匙扣

Ubuntu 桌面的 RDP 会将连接所需的用户名和密码存储在 GNOME 密钥环中。 因此,要建立 RDP 连接,gnome-remote-desktop 必须能通过以下方式之一读取 GNOME 密钥环

    1. 控制台登录图形用户界面一次(如果是自动登录,则注销 ➝ 登录)

 

    1. 从控制台打开 GNOME 钥匙扣并解锁

 

    1. 为 GNOME 密钥环设置空白密码

 

    通过 CLI 解锁 GNOME 密钥环

在这里,这是通过 方法4.
※注意※
如果 GNOME 桌面从未启动过,此处输入的 password=”” 值将被设置为 GNOME 密钥环的密码。

password="当前登录用户的密码。"
killall -q -u "$(whoami)" gnome-keyring-daemon
export $( echo -n "$password" | gnome-keyring-daemon --daemonize --login ) >/dev/null 2>&1
# 確認 1  //将连接用户名初始化为 "test_user",密码初始化为 "test_password"。
grdctl rdp set-credentials "test_user" "test_password"
# 確認 2
grdctl status --show-credentials

解锁是否成功。

    如果 “grdctl rdp set-credentials “” “”” 不返回 “无法在已锁定的集合中创建项目”,那就可以了。

如果看起来不像↓,也没关系。

USER@servername:~$ grdctl rdp set-credentials "" ""
Cannot create an item in a locked collection

并且

    如果执行“grdctl status –show-credentials”的结果中,”Username:”和”Password:”不为(null),则表示成功。

如果看起来不像↓,也没关系。

USER@servername:~$ grdctl status --show-credentials
RDP:
        Status: enabled
        TLS certificate: /home/$(whoami)/.local/share/gnome-remote-desktop/rdp-tls.crt
        TLS key: /home/$(whoami)/.local/share/gnome-remote-desktop/rdp-tls.key
        View-only: no
        Username: (null)
        Password: (null)

我会创建一个脚本,使其能够轻松执行。

文件名为 gdm3-key 的脚本
    1. cd $HOME

 

    1. touch gdm3-key

 

    vim gdm3-key
#!/bin/bash
printf '[Unlock Keyring] password for '"$(whoami)"': ' && read -s password && echo --completed--
killall -q -u "$(whoami)" gnome-keyring-daemon
export $( echo -n "$password" | gnome-keyring-daemon --daemonize --login ) >/dev/null 2>&1
grdctl status --show-credentials
unset password
exit

以防万一(确保换行代码为 LF)
4. sed -i -e ‘s/\r//g’ gdm3-key
実行は
5. bash ~/gdm3-key

4.RDP 用的用户信息认证设置

3.先解锁 GNOME 钥匙圈。
用户名和密码可以自由选择。 这里,用户名设置为当前登录 shell 的用户。

# grdctl rdp set-credentials "用户名" "密码"
grdctl rdp set-credentials "$(whoami)" "RDP_Password"
# 证实
grdctl status --show-credentials

请核实

1. 查看各种状态
grdctl status
systemctl --user status gnome-remote-desktop.service
# gsettings list-keys org.gnome.desktop.remote-desktop.rdp
gsettings get org.gnome.desktop.remote-desktop.rdp enable
2. 更改设置
‘’ 1.下一个情况
‘’ USER@servername:~$ gsettings get org.gnome.desktop.remote-desktop.rdp enable
‘’ false
gsettings set org.gnome.desktop.remote-desktop.rdp enable true

‘’ 2.在下列情况下
‘’ USER@servername:~$ grdctl status | head -n 5 | grep Status:
‘’         Status: disabled
grdctl rdp enable
3. 重新启动RDP服务

请重启gnome-remote-desktop.service服务的用户级systemctl。
以管理员身份立即重新启动计算机。

用实际的远程桌面协议(RDP)进行连接

将gnome-remote-desktop注册为服务。

让 gnome-session.target 在启动时也启动 gnome-remote-desktop。
systemctl –user 启用并立即运行 gnome-remote-desktop.service。

USER@servername:~$ cat /home/$(whoami)/.config/systemd/user/gnome-session.target.wants/gnome-remote-desktop.service
[Unit]
Description=GNOME Remote Desktop

[Service]
Type=dbus
BusName=org.gnome.RemoteDesktop
ExecStart=/usr/libexec/gnome-remote-desktop-daemon
Restart=on-failure

[Install]
WantedBy=gnome-session.target
启动GNOME桌面、解锁密钥环。
sudo systemctl start gdm3
bash ~/gdm3-key
3. 从任意的客户端进行连接

本节介绍从 Windows 连接

    1. [Win + R]

 

    1. [mstsc /v:Ubuntu Server IP地址] 例)mstsc /v:192.168.xxx.xxx:3389

 

    1. 其他 ➝ 使用其他帐户。

 

    “4.RDP 使用在 “设置用户身份验证信息 “中设置的用户名和密码进行连接。
截图 (369).png
 ※RDP 当客户端屏幕用作扩展显示屏时。

将 RDP 客户端扩展为多屏幕现象

关于headless的事项

如果不是运行Ubuntu桌面,而是运行GNOME Shell,就可以通过RDP连接到无头模式。无头。

故障排除

如果使用用户名和密码进行身份验证,但系统立即退出、

gsettings set org.gnome.desktop.remote-desktop.rdp enable false
gsettings set org.gnome.desktop.remote-desktop.rdp enable true
systemctl --user restart gnome-remote-desktop.service
截图 (371)ver1.png
截图 (370)ver1.png

如果无法重新连接,请重新启动GDM3。

sudo systemctl restart gdm3
bash ~/gdm3-key

如果主机分辨率高于客户端,则可能无法正常显示。 请参考文章 ↓ 更改分辨率。
通过 CLI 更改桌面分辨率

引用来源、参照来源、参考来源

Ubuntu 22.04 解锁启动密码和钥匙圈
・https://arakoki70.com/?p=7040#
Unlock Gnome Keyring Daemon from command line
・https://unix.stackexchange.com/questions/602313/unlock-gnome-keyring-daemon-from-command-line/602935
Ubuntu 22.04 remote desktop headless?
・https://askubuntu.com/questions/1407444/ubuntu-22-04-remote-desktop-headless
[未完] Ubuntu Server 22.04 on 我想在 LXD 中安装一个桌面环境,并使用 gnome-remote-desktop [?]
・https://qiita.com/daikichi298/items/a0157954411f6e827411
Ubuntu Manpage [gsettings – GSettings configuration tool]
・https://manpages.ubuntu.com/manpages/trusty/man1/gsettings.1.html
Shell Script撰写的 10 个技巧。
・https://keens.github.io/blog/2015/06/17/shell_scriptwokakutokinikiwotsuketaikoto/
OpenSSL で SSL 签发自我证书的程序
・https://weblabo.oscasierra.net/openssl-gencert-1/
10.2.4.1 创建客户证书。
・http://www2.matsue-ct.ac.jp/home/kanayama/text/nginx/node99.html

广告
将在 10 秒后关闭
bannerAds