macOS へ RDP でリモートデスクトップ接続する


macOS 標準機能の画面共有は VNC ベースで、Windowsのリモートデスクトップと比べるともっさり感が否めません。また暗号化されないので、社内ネットワークで使うときはsshに乗せたりと面倒です。

そんな折にxrdpがmacOSでも動くらしいよと教えてもらい、早速試したところBig Surでも動きました。

やってみたところ、使えることは使えるのですが、同一LAN内では標準の画面共有の方が快適でした。遠いネットワークからだと違う結果になるかもしれませんが、環境が無いので試せていません。

インストール

以下からパッケージをダウンロードしておきます。xrdp-0.9.15 と xorgxrdp-0.2.15 で動作確認しました。OSは macOS 11.1 です。

xQuartz が必要なので、インストールしておきます。

brew install xquartz

依存パッケージのインストール。automake も入れろって書いてあるけど、tar ball からインストールするときはたぶん不要。

brew install libtool pkgconfig nasm libssl

まず xrdp をインストールします。

cd xrdp-0.9.15/
# git からインストールするときは bootstrap が必要
# ./bootstrap
./configure PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig
make
sudo make install

/usr/local/ 以下は Homebrew で使っていてそこに入れるのはちょっと気持ち悪いですが、パスを変えると色々と面倒なので、そのままにしました。

xorgxrdp をインストールします。

cd ../xorgxrdp-0.2.15/
# ./bootstrap
./configure PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig
make
sudo make install

設定

/etc/xrdp/xrdp.ini を編集します。
[Xorg], [Xvnc], [neutrinordp-any] をコメントアウトし、[vnc-any] のlibを変更します。

#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#code=20

#[Xvnc]
#name=Xvnc
#lib=libvnc.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#xserverbpp=24
#delay_ms=2000
; Disable requested encodings to support buggy VNC servers
; (1 = ExtendedDesktopSize)
#disabled_encodings_mask=0


[vnc-any]
name=vnc-any
lib=libvnc.dylib
ip=127.0.0.1
port=ask5900
username=na
password=ask
#pamusername=asksame
#pampassword=asksame
#pamsessionmng=127.0.0.1
#delay_ms=2000

#[neutrinordp-any]
#name=neutrinordp-any
#lib=libxrdpneutrinordp.so
#ip=ask
#port=ask3389
#username=ask
#password=ask

確認

macのシステム環境設定で画面共有を有効にします。

この「コンピュータ設定」で「VNC使用者が画面を操作することを許可」を有効にし、パスワードを設定しておきます。

xrdp を起動します。

sudo /usr/local/sbin/xrdp
sudo /usr/local/sbin/xrdp-sesman

別のPCからリモートデスクトップクライアントで接続します。
設定が間違っているのか、ここで入力したID/Passwordではログインに失敗します。
以下の画面が表示されるので、ここでpasswordに、先程VNCの設定で入力したパスワードを入れます。

終了は -k をつけて実行します。

sudo /usr/local/sbin/xrdp -k
sudo /usr/local/sbin/xrdp-sesman -k

問題

設定を間違えているだけのような気もしますが、切り分けられていません

  • リモートデスクトップ接続時に入力したアカウントでログインできない
  • 修飾キーの設定がリセットされる(capsをctrlに変更とか)

自動起動

TBD