#■ 目的
サーバー管理するにあたって、通常CLIですが、時々GUIも使いたくなります。
そのときはVNCを使うのですが、X Window もやってみたくなります。
ということで、Oracle CloudのLinixコンピュートのGUI表示をMACでX Windowしてみてみます。
#■ 構成イメージ
OCIへInternet接続したOn-Premises環境にあるMac Bookから、Xしてみてみます
#■ Mac側設定
##● Mac 用の X11 について
X11 は Mac に付属しなくなりましたが、X11 のサーバとクライアントのライブラリは、XQuartz プロジェクトから入手できます。
・XQuartz プロジェクト: https://support.apple.com/ja-jp/HT201341
##● XQuartz ダウンロード
xquartz.org から、XQuartz をダウンロード
・xquartz.org: https://www.xquartz.org/
##●xquartzインストール
- .dmgファイル実行
ダウンロードした、.dmgファイルをクリックして、XQuartz.pkgをクリック
- ようこそXQuartz インストーラーへ画面
[続ける]をクリック
- 大切な情報画面
[続ける]をクリック
- 使用許諾契約画面
使用許諾契約内容を確認し、[続ける]をクリック
- ソフトウェア使用許諾の条件に同意する必要があります。画面
使用許諾契約に合意できれば、[同意する]をクリック
- インストールの種類画面
[インストール]をクリック
- ポップアップ
You will need to log out and log back in to make XQuartz your default X11 server
内容を確認し、[OK]をクリック
- インストールが完了しました画面
#■OCI Linuxコンピュート側設定
リモートアクセスするLinuxマシンに、X Windowできるように設定
##● xorg-x11パッケージインストール
xorg-x11パッケージがインストールされていない場合、
以下2つを yumコマンドでインストール
・xorg-x11-xauth.x86_64
・xorg-x11-server-utils.x86_64
[root@oci-inst01 opc]# yum install -y xorg-x11-xauth.x86_64 xorg-x11-server-utils.x86_64
読み込んだプラグイン:langpacks, ulninfo
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ xorg-x11-server-utils.x86_64 0:7.7-20.el7 を インストール
--> 依存性の処理をしています: libXxf86misc.so.1()(64bit) のパッケージ: xorg-x11-server-utils-7.7-20.el7.x86_64
--> 依存性の処理をしています: libXrandr.so.2()(64bit) のパッケージ: xorg-x11-server-utils-7.7-20.el7.x86_64
--> 依存性の処理をしています: libXinerama.so.1()(64bit) のパッケージ: xorg-x11-server-utils-7.7-20.el7.x86_64
--> 依存性の処理をしています: libXi.so.6()(64bit) のパッケージ: xorg-x11-server-utils-7.7-20.el7.x86_64
---> パッケージ xorg-x11-xauth.x86_64 1:1.0.9-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libXi.x86_64 0:1.7.9-1.el7 を インストール
---> パッケージ libXinerama.x86_64 0:1.1.3-2.1.el7 を インストール
---> パッケージ libXrandr.x86_64 0:1.5.1-2.el7 を インストール
---> パッケージ libXxf86misc.x86_64 0:1.0.3-7.1.el7 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==========================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
==========================================================================================
インストール中:
xorg-x11-server-utils x86_64 7.7-20.el7 ol7_latest 178 k
xorg-x11-xauth x86_64 1:1.0.9-1.el7 ol7_latest 29 k
依存性関連でのインストールをします:
libXi x86_64 1.7.9-1.el7 ol7_latest 40 k
libXinerama x86_64 1.1.3-2.1.el7 ol7_latest 13 k
libXrandr x86_64 1.5.1-2.el7 ol7_latest 27 k
libXxf86misc x86_64 1.0.3-7.1.el7 ol7_latest 19 k
トランザクションの要約
==========================================================================================
インストール 2 パッケージ (+4 個の依存関係のパッケージ)
総ダウンロード容量: 305 k
インストール容量: 629 k
Downloading packages:
(1/6): libXi-1.7.9-1.el7.x86_64.rpm | 40 kB 00:00:00
(2/6): libXrandr-1.5.1-2.el7.x86_64.rpm | 27 kB 00:00:00
(3/6): libXxf86misc-1.0.3-7.1.el7.x86_64.rpm | 19 kB 00:00:00
(4/6): libXinerama-1.1.3-2.1.el7.x86_64.rpm | 13 kB 00:00:00
(5/6): xorg-x11-server-utils-7.7-20.el7.x86_64.rpm | 178 kB 00:00:00
(6/6): xorg-x11-xauth-1.0.9-1.el7.x86_64.rpm | 29 kB 00:00:00
------------------------------------------------------------------------------------------
合計 4.2 MB/s | 305 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : libXrandr-1.5.1-2.el7.x86_64 1/6
インストール中 : libXxf86misc-1.0.3-7.1.el7.x86_64 2/6
インストール中 : libXinerama-1.1.3-2.1.el7.x86_64 3/6
インストール中 : libXi-1.7.9-1.el7.x86_64 4/6
インストール中 : xorg-x11-server-utils-7.7-20.el7.x86_64 5/6
インストール中 : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64 6/6
検証中 : libXi-1.7.9-1.el7.x86_64 1/6
検証中 : libXinerama-1.1.3-2.1.el7.x86_64 2/6
検証中 : libXxf86misc-1.0.3-7.1.el7.x86_64 3/6
検証中 : libXrandr-1.5.1-2.el7.x86_64 4/6
検証中 : xorg-x11-server-utils-7.7-20.el7.x86_64 5/6
検証中 : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64 6/6
インストール:
xorg-x11-server-utils.x86_64 0:7.7-20.el7 xorg-x11-xauth.x86_64 1:1.0.9-1.el7
依存性関連をインストールしました:
libXi.x86_64 0:1.7.9-1.el7 libXinerama.x86_64 0:1.1.3-2.1.el7
libXrandr.x86_64 0:1.5.1-2.el7 libXxf86misc.x86_64 0:1.0.3-7.1.el7
完了しました!
##● xeyes インストール
X動作確認用 GUIツール xeyesをインストール
これによりxclockなどもインストールされます
[root@tokyo-inst01 opc]# yum install xeyes
読み込んだプラグイン:langpacks, ulninfo
ol7_UEKR5 | 2.8 kB 00:00:00
ol7_addons | 2.8 kB 00:00:00
ol7_developer | 2.8 kB 00:00:00
・・・
インストール:
xorg-x11-apps.x86_64 0:7.7-7.el7
依存性関連をインストールしました:
dejavu-fonts-common.noarch 0:2.33-6.el7 dejavu-sans-fonts.noarch 0:2.33-6.el7
fontconfig.x86_64 0:2.13.0-4.3.el7 libICE.x86_64 0:1.0.9-9.el7
libSM.x86_64 0:1.2.2-2.el7 libX11.x86_64 0:1.6.7-2.el7
libX11-common.noarch 0:1.6.7-2.el7 libXau.x86_64 0:1.0.8-2.1.el7
libXaw.x86_64 0:1.0.13-4.el7 libXcursor.x86_64 0:1.1.15-1.el7
libXext.x86_64 0:1.3.3-3.el7 libXfixes.x86_64 0:5.0.3-1.el7
libXft.x86_64 0:2.3.2-2.el7 libXmu.x86_64 0:1.1.2-2.el7
libXpm.x86_64 0:3.5.12-1.el7 libXrender.x86_64 0:0.9.10-1.el7
libXt.x86_64 0:1.1.5-3.el7 libXxf86vm.x86_64 0:1.1.4-1.el7
libfontenc.x86_64 0:1.1.3-3.el7 libxcb.x86_64 0:1.13-1.el7
libxkbfile.x86_64 0:1.0.9-3.el7
完了しました!
##● sshd設定
・sshd_config設定
以下を設定
(#はコメントアウトなので、はずしましょ)
[root@oci-inst01 ssh]# vi /etc/ssh/sshd_config
・・・
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
・・・
・sshd_config設定確認
[root@oci-inst01 ssh]# cat /etc/ssh/sshd_config | grep X11
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no
#X11UseLocalhost yes
・sshd 再起動
[root@oci-inst01 ssh]# systemctl restart sshd
#■ MACからOCI LinuxコンピュートへX window実行
##● sshタイムアウト回避接続状態継続設定
ssh接続がタイムアウトしないように homeディレクトリにある.ssh/configファイルへ以下3行追加
また、MAC OSの Update などで xauthパス が変更されることがあり、ssh -X ~ で接続すると、次のような Warning が出力されることがあります。その場合、.ssh/configファイル へ XAuthLocationパラメーターを設定します
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
- xauthパス確認
$ which xauth
/opt/X11/bin/xauth
2).ssh/config設定
mac-book:~ user$ vi ~/.ssh/config
Host *
ServerAliveInterval 60
TCPKeepAlive yes
XAuthLocation /opt/X11/bin/xauth
##● XQuartz でX起動
- XQuartzターミナル起動
Launchpad の [その他]の中にある XQuartzアイコンをクリックし、ターミナル起動
- OCIインスタンスへssh接続
ssh接続は、X11 forwarding機能を有効にする -X オプションをつけて実行
※xtermでのペーストは、オプション+左クリック
mac-book:~ user$ ssh -X -i id_rsa opc@1.2.3.4
Last login: Mon Aug 10 12:50:03 2020
- DISPLAY環境変数確認
DISPLAY環境変数が自動登録されていることを確認
自動登録されていない場合は、sshd等の設定を見直します
[opc@oci-inst01 ~]$ env | grep DISPLAY
DISPLAY=10.0.0.2:11.0
- xclock実行
xeyesコマンドで、xeyes の GUIが表示されることを確認
[opc@oci-inst01 ~]$ xeyes
xeyes実行できず、error: "Can't open display"等が表示された場合は、ポート6000が空いているかFirewall等の環境見直しをします
##● iTerm でX起動
XQuartzがインストールされていれば、ターミナルはiTermでもX起動できます。
iTermがインストールされていない場合、https://iterm2.com/から iTerm2をインストール
mac-book:~ user$ ssh -X -i id_rsa opc@1.2.3.4
Last login: Mon Aug 10 12:55:12 2020
- DISPLAY環境変数確認
DISPLAY環境変数が接続したインスタンスのIPで自動登録されていることを確認
自動登録されていない場合は、sshd等の設定を見直します
[opc@oci-inst01 ~]$ env | grep DISPLAY
DISPLAY=10.0.0.2:11.0