概要

最近のコロナの騒ぎを受けて、弊社でもリモートワークが始まりました。 今まで社内では、macbookからデスクトップubuntuにsshでログインして作業していたんですが、異なるネットワークを介して接続したことはありませんでした。 弊社のネットワークはセキュリティを意識してか、vpn環境に入るとsshできず、rdpならできるという謎仕様なので、それならということでubuntuにxrdpサーバーを立ち上げてみました。 同様の記事は他にもたくさんあるのですが(例えばこことか)、あちこち情報が散らばってて設定に苦労したので、備忘録として残しておきます。

環境

  • 繋ぐ方:macOS
  • 繋がれる方:ubuntu mate 18.04

ubuntu側の設定

まずRDPをするのに必要なパッケージをインストールします。

sudo apt install xrdp xorg xorgxrdp

xorgxrdpを入れるのを忘れていると、リモートログイン出来ても、その後ブラックスクリーンになるので注意します(ここでハマった)。

つぎに、ログイン後のカーソル周りの不具合を治すために、/etc/xrdp/xrdp.iniでつぎの行を書き換えます。

書き換え前:

new_cursors=true

書き換え後:

new_cursors=false

さらに、~/.xsessionにつぎのコマンドを書き加えます:

unset DBUS_SESSION_BUS_ADDRESS

export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS="@im=ibus"
ibus-daemon -rdx

exec mate-session

ほかの方の記事では、/etc/xrdp/startwm.shに書き込んでいたのですが、こっちに落ち着きました。 また~/.xsessionrcは空のままにしておきます。

最後に~/.zshrcの下の方につぎを加えます。

export "LIBGL_ALWAYS_INDIRECT=1"
unset SESSION_MANAGER

正直何がなんだかわからないまま試行錯誤した結果、上記の設定でつなげるようになりました。

mac側の設定

まずmicrosoft remote desktop clientをインストールします。 App Storeからダウンロードしてください。

起動したら、新規のPCを追加し、

  • PC name: ubuntuのipアドレス
  • user account: ubuntuのユーザ名とパスワード

とします。 これで保存し、接続したらつなげるはずです。