[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,音频可能无法输出。

建設 shè)

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 を有効にし、View-only を解除する
grdctl rdp enable
grdctl rdp disable-view-only
3.GNOMEキーリング を解錠する

Ubuntu Desktop 付属の RDP は、接続に必要なユーザー名とパスワードを GNOMEキーリング に保存します。そのため RDP 接続するには次のどれかで gnome-remote-desktop が GNOMEキーリング を読み取れるようにする必要があります。

    1. 一度 GUI にコンソールサインインする(自動ログインならログアウト➝ログインする)

 

    1. コンソールから GNOMEキーリング を開いて、アンロック

 

    1. GNOMEキーリング のパスワードを空に設定する

 

    CLI から GNOMEキーリング をアンロックする

ここでは、4 の方法で行います。
※注意※
1度も GNOME Desktop を起動したことがない場合、ここで 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 “” “”” 不返回 “无法在已锁定的集合中创建项目”,那就可以了。

↓のようになっていなければOK

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

さらに

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

↓のようになっていなければOK

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キーリング を解錠する を先に行ってください。
ユーザー名、パスワードは自由に決めてもらって構いません。ここではユーザー名はシェルにログイン中のユーザーで設定しています。

# 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