SSH先のGUIアプリケーションを使う方法

SSH先の強力なサーバでシミュレーションを動かして,手元でシミュレーションの動作を見たかったので,X11Forwardingを使ったSSH時のGUIアプリケーションを利用できる設定をしました.

環境

SSH Host: Ubuntu 18.04
SSH Client: macOS Catalina Version 10.15.1

SSH先は,LinuxでOpenSSHを使っているのであれば,なんでも行けると思います. SSHクライアントは,macOSだとひと手間必要です.こちらもLinuxであれば,すんなり行けるはず...ただ,試したわけではないので不明 SSHに必要なあらゆる設定はできていて,普通のsshはできていることとします.

Hostの設定

X11Forwardingはデフォルトでは許可されていないため,許可する設定を行います.

$ sudo vim /etc/ssh/sshd_config
X11Forwarding yes # この行がコメントアウトされていたりするので有効化してください
$ # sshdを再起動
$ sudo systemctl restart ssh.service

これをするだけでSSH時にGUIアプリケーションを利用することができるようになります.

Clientの設定

Macでは,デフォルトでX Window Systemに対応していないため,XQuartzをインストールする必要があります

$ brew update
$ brew install xquartz

インストール後再起動をしてください. その後,ssh時にX11を有効にするため,~/.ssh/configを追記します.

$ vim ~/.ssh/config
Host hogehoge
  HostName hogehoge
  User kmdkuk
  Port 22
  IdentityFile <IdentityFileへのPATH>
  XAuthLocation /opt/X11/bin/xauth
  ForwardX11Trusted yes

XAuthLocation, ForwardX11Trustedの行を追記してください. これで準備完了です.

実行

$ -X をつけることで,X11Forwardが有効になります.
$ ssh -X hogehoge
$ firefox &

これで,リモートにインストールされているGUIアプリケーションが,Mac上のxqurtsで見ることができると思います.