LinuxにGNOME Remote Desktopサービスを導入してクライアントからRDP接続してみました。接続するとGDM画面からログインできます。

https://gitlab.gnome.org/GNOME/gnome-remote-desktop

環境と動作確認結果(途中)

3つのモードがあるようです。

  • Remote assistance / Desktop sharing
    既存のユーザセッション画面を共有する。
  • Headless multi user remote login / Remote login
    画面のサイズ指定可能。GDMから操作可能。
  • Headless (single user)
    画面のサイズ指定可能。既存のユーザセッション画面とは別に画面表示する(セッション情報は共有しているっぽい)。
Server OS RA    HL-M HL-S
PC Arch OK OK OK
  Ubuntu OK OK
  Fedora
RPi 4B Arch OK OK
  Ubuntu OK OK
VBox Arch OK OK
  Ubuntu
  Fedora

構築 - GUIの場合

Desktop Sharing

Remote Login

Remote Loginを有効にするとDesktop Sharingのポート番号が変更される。

構築 - CUIの場合

GRD - Remote assistance

  1. Generate a TLS key and certificate.
mkdir -p ~/.local/share/gnome-remote-desktop/
openssl req -new -newkey rsa:4096 -days 720 -nodes -x509 -subj /C=SE/ST=NONE/L=NONE/O=GNOME/CN=$(hostname) -out ~/.local/share/gnome-remote-desktop/tls.crt -keyout ~/.local/share/gnome-remote-desktop/tls.key
  1. Configure GNOME Remote Desktop:
grdctl rdp set-tls-key ~/.local/share/gnome-remote-desktop/tls.key
grdctl rdp set-tls-cert ~/.local/share/gnome-remote-desktop/tls.crt
grdctl rdp set-credentials # Enter credentials via standard input
grdctl rdp enable
grdctl rdp disable-view-only
  1. Enable remote assistance user service.
systemctl --user enable --now gnome-remote-desktop.service
  1. Disable remote assistance user service.
systemctl --user disable --now gnome-remote-desktop.service

GRD - Headless multi user remote login

  1. Generate a TLS key and certificate.
sudo -u gnome-remote-desktop sh -c 'mkdir -p ~/.local/share/gnome-remote-desktop/'
sudo -u gnome-remote-desktop sh -c "openssl req -new -newkey rsa:4096 -days 720 -nodes -x509 -subj /C=SE/ST=NONE/L=NONE/O=GNOME/CN=$(hostname) -out ~/.local/share/gnome-remote-desktop/tls.crt -keyout ~/.local/share/gnome-remote-desktop/tls.key"

/var/lib/gnome-remote-desktop/.local/share/gnome-remote-desktop/ に格納されます。

  1. Configure GNOME Remote Desktop:
sudo grdctl --system rdp set-tls-key ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.key
sudo grdctl --system rdp set-tls-cert ~gnome-remote-desktop/.local/share/gnome-remote-desktop/tls.crt
sudo grdctl --system rdp set-credentials # Enter credentials via standard input
sudo grdctl --system rdp enable
  1. Enable system remote login service.
sudo systemctl enable --now gnome-remote-desktop.service
  1. Disable system remote login service.
sudo systemctl disable --now gnome-remote-desktop.service

GRD - Headless (single user)

  1. Generate a TLS key and certificate.
mkdir -p ~/.local/share/gnome-remote-desktop/
openssl req -new -newkey rsa:4096 -days 720 -nodes -x509 -subj /C=SE/ST=NONE/L=NONE/O=GNOME/CN=$(hostname) -out ~/.local/share/gnome-remote-desktop/tls.crt -keyout ~/.local/share/gnome-remote-desktop/tls.key
  1. Configure GNOME Remote Desktop:
grdctl --headless rdp set-tls-key ~/.local/share/gnome-remote-desktop/tls.key
grdctl --headless rdp set-tls-cert ~/.local/share/gnome-remote-desktop/tls.crt
grdctl --headless rdp set-credentials # Enter credentials via standard input
grdctl --headless rdp enable
  1. Enable headless single user service.
systemctl --user enable --now gnome-remote-desktop-headless.service
  1. Disable headless single user service.
systemctl --user disable --now gnome-remote-desktop-headless.service

利用

  • Windows
    • リモートデスクトップ接続(mstsc)
  • Linux
    • remmina
    • gnome-connetions