Oracle Cloud InfrastructureのArmインスタンスでリモートデスクトップしたいのでxrdpを使う: Oracle Linux編

Oracle Cloud InfrastructureのArmインスタンスでリモートデスクトップしたいのでxrdpを使う: Oracle Linux編
Page content

はじめに

Oracle Cloud Infrastructure (OCI) のheadlessな、下記のインスタンスでGUIを使おうと思い、xrdpを導入する手順の記録です。手順の中の「000.000.000.000」は、対象インスタンスのIPアドレスです。

手元の作業PCは、SSHでのX転送が可能な状態を前提としています。また、リモートデスクトップとしては、個人的には「Chrome Remote Desktop」を最も使い慣れているのですが、LinuxのARM (aarch64) 向けのGoogle公式パッケージが現時点では存在せず、非公式パッケージで多少試しましたが導入は無理そうだったので、xrdpに至っています。

かなり我流でやってみた手順ですので、妙なところがあるかもしれません。参考程度にどうぞお願いします。

a) xrdp導入手順 (Oracle Linux 7.9の場合)

ここではFedora Projectの「epel」を利用しました。Oracle Linuxに用意されている「ol7_developer_EPEL」を用いると、途中のxorgxrdp-0.2.10-1.el7.aarch64導入時に依存関係で引っかかるようでしたので。

1. X Window SystemとXfceを導入

# 作業PC
ssh opc@000.000.000.000

# 対象インスタンス
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # 以降epelが有効な状態になる
sudo yum update
sudo yum groupinstall "X Window System" "Xfce"
# 対象インスタンス
sudo vim /etc/pam.d/xserver # ←「auth required pam_console.so」を「auth required pam_permit.so」へ変更する
sudo vim /etc/X11/Xwrapper.config # ←「allowed_users=anybody」を追記する
sudo vim /etc/ssh/sshd_config # ←「X11UseLocalhost no」を設定する
sudo systemctl reload-or-try-restart sshd
echo "xfce4-session" > ~/.Xclients
chmod +x ~/.Xclients
startx # →プロセスがエラー終了しないならとりあえずOK、Ctrl+Cで止める
exit

# 作業PC
ssh -O exit opc@000.000.000.000

2. X転送でxcalcをテスト

# 作業PC
ssh -Y opc@000.000.000.000 # →「X11 forwarding request failed」のエラーが出ないことを確認する

# 対象インスタンス
sudo yum install xcalc # XアプリならもちろんxcalcじゃなくてもOK
xcalc # 作業PCの画面にxcalcが表示されたらXは動いている
exit

# 作業PC
ssh -O exit opc@000.000.000.000

3. xrdpを導入してテスト

# 作業PC
ssh -L 3389:localhost:3389 opc@000.000.000.000

# 対象インスタンス
sudo yum install xrdp
sudo systemctl enable --now xrdp
sudo passwd opc

# 作業PC
# RDP接続ソフト (例: remmina) で、localhost:3389へ接続して動作確認する

b) xrdp導入手順 (Oracle Linux 8.3 or 8.4の場合)

1. X Window SystemとGNOMEを導入

# 作業PC
ssh opc@000.000.000.000

# 対象インスタンス
sudo yum update
sudo yum groupinstall "Server with GUI"

# 対象インスタンス
sudo vim /etc/X11/Xwrapper.config # ←「allowed_users=anybody」を追記する
startx # →プロセスがエラー終了しないならとりあえずOK、Ctrl+Cで止める
exit

# 作業PC
ssh -O exit opc@000.000.000.000

2. X転送でxcalcをテスト

# 作業PC
ssh -Y opc@000.000.000.000 # →「X11 forwarding request failed」のエラーが出ないことを確認する

# 対象インスタンス
sudo yum --enablerepo=ol8_developer_EPEL install xcalc # XアプリならもちろんxcalcじゃなくてもOK
xcalc # 作業PCの画面にxcalcが表示されたらXは動いている
exit

# 作業PC
ssh -O exit opc@000.000.000.000

3. xrdpを導入してテスト

# 作業PC
ssh -L 3389:localhost:3389 opc@000.000.000.000

# 対象インスタンス
sudo yum --enablerepo=ol8_developer_EPEL install xrdp
sudo systemctl enable --now xrdp
sudo passwd opc

# 作業PC
# RDP接続ソフト (例: remmina) で、localhost:3389へ接続して動作確認する

追記 [2021-06-14]

Oracle Linux編に続き、Ubuntu編も書きました。

参考リンク

Oracle Cloud Infrastructure (OCI)

「Always Free Arm」の無料枠が、4Core・24GBの大盤振る舞いです。Instanceを複数台作ったら、この枠の中で各スペックを調整できます。

EPELリポジトリ

chrome-remote-desktop

Oracle Linuxのchrome-remote-desktop-88.0.4324.150-1.0.1.el8.aarch64で、下記の現象に引っかかった気がします。