[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 密钥环
-
- 控制台登录图形用户界面一次(如果是自动登录,则注销 ➝ 登录)
-
- 从控制台打开 GNOME 钥匙扣并解锁
-
- 为 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 的脚本
-
- cd $HOME
-
- 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 连接
-
- [Win + R]
-
- [mstsc /v:Ubuntu Server IP地址] 例)mstsc /v:192.168.xxx.xxx:3389
-
- 其他 ➝ 使用其他帐户。
- “4.RDP 使用在 “设置用户身份验证信息 “中设置的用户名和密码进行连接。
※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
如果无法重新连接,请重新启动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