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
  2. 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
  3. Enable remote assistance user service.

    systemctl --user enable --now gnome-remote-desktop.service
  4. 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/ に格納されます。

  2. 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
  3. Enable system remote login service.

    sudo systemctl enable --now gnome-remote-desktop.service
  4. 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
  2. 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
  3. Enable headless single user service.

    systemctl --user enable --now gnome-remote-desktop-headless.service
  4. Disable headless single user service.

    systemctl --user disable --now gnome-remote-desktop-headless.service

利用

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