前回、踏み台サーバーを経由してVisual Studio CodeのRemote Developmentで接続する方法を記事にしました。今回は、踏み台サーバーを経由してリモートデスクトップ接続について書いてみようと思います。
構成
- Windows 10 (接続元)
- Ubuntu 22.04 (踏み台サーバー)
- public IP: 192.168.100.100/24
- internal IP: 192.168.10.100/24
- Ubuntu 22.04 (接続先)
- internal IP: 192.168.10.201/24
接続先のサーバーのセットアップ
接続のサーバーは、Ubuntu Desktopとしてインストールを行います。
isoファイルからインストールするか、Ubuntu ServerからUbuntu Desktopのインストールを行いますが、今回はisoファイルからインストールを行いました。
リモートデスクトップ接続の接続先となるサーバーのインターフェイスにプライベートネットワークのIPアドレスを設定しておきます。
踏み台サーバーのインターフェイスの設定は前回と同じです。
xrdpのインストール
Ubuntuには、SettingsにSharing(共有)という機能があります。
こちらの機能は、RDPを使った画面をミラーする機能になり、Windowsのリモートデスクトップ接続とは異なり、サーバーにコンソール接続してログインしたい状態ではないと操作ができません。
ログアウトした状態で、リモートデスクトップ接続を行いたい場合は、xrdpを利用します。
Ubuntu 24.04では、リモートログイン機能が入りましたが、Ubuntu 22.04ではないため、リモートデスクトップ接続できるようにxrdp をインストールします。
sudo apt install xrdp
xrdpを使用する場合、X Window SystemのXorgが利用され、起動処理の中でGNOMEのデスクトップ環境が選択されて起動します。
- ユーザーがRDPクライアントでXorgセッションで接続。
- xrdpがstartwm.shを実行。
- startwm.sh内で、/etc/X11/Xsessionが呼び出される。
- /etc/X11/XsessionがGNOMEデスクトップ環境を起動し、リモートデスクトップにGUIを提供。
デスクトップ環境を.xsessionrcで設定することも可能ですが、デフォルトで /usr/share/xsessions/ubuntsu-xorg.desktop
でGNOMEが指定されてそうでした。
ssh configの設定
接続先の踏み台サーバーが用意できたため、Local Port ForwardingでRDP接続できるように、以下のように C:\Users\User Name\.ssh/config
ファイルを編集します。
Host bustion HostName 192.168.100.100 User UserName ForwardAgent yes LocalForward 13389 192.168.10.201:3389
Windowsからのリモートデスクトップ接続
PowerShellでsshコマンドで接続して、Local Port Forwardingができるか確認してみます。
ssh先で何もしないため、-Nオプションを指定しておきます。
ssh -N bustion
Windowsでリモートデスクトップ接続を起動し、コンピューターに localhost:13389
を入力します。
接続をするとxrdpのログイン画面が表示されるため、SessionにXorg、usernameとpasswordにUbuntuのログイン情報を入力します。
ログインすると、Dockが表示されず、右上にActivitiesのみ表示されます。
gnome-extensionsコマンドでdockを有効にすると、左側にDockが表示されるようになります。
$ gnome-extensions list [email protected] [email protected] [email protected] $ gnome-extensinos enable [email protected]