MacOSでOpenSSH
ここでは、MacOS Mojave (10.14) / Catalina (10.15) にSSH接続し、X11プロトコルを使用するアプリケーションでSSHを介してXを飛ばせるようにした際の設定方法を紹介しています。最新版のSonoma (14)でも同じ方法が使用可能です。
SSHサーバにするには共有設定が、Xを飛ばすにはXquartzのインストールが必要でした。コマンド入力の説明では、%が一般ユーザのプロンプトを表しています。
SSHの許可
[システム環境設定]ー[共有]から、リモートログインにチェックを入れます。
ログインする際のコマンドが表示されるので、メモしておきます。
Xquartzのインストール
サーバ側、クライアント側のどちらにもインストールします
Xquartzをダウンロードします。
https://www.xquartz.org
ダウンロードしたdmgファイルを開くとpkgファイルが出てくるので、pkgファイルをインストールします。
この際に、/etc/ssh/sshd_config、/etc/ssh/ssh_configが変更され、次の行が挿入されます。
# XAuthLocation added by XQuartz (http://xquartz.macosforge.org) XAuthLocation /opt/X11/bin/xauth
X Forwardingの設定
サーバ側の設定
デフォルトではX Forwardingができないようになっているので、X Forwardingの設定が必要になります。
/etc/ssh/sshd_configで#X11Forwarding no
という行を探し、#X11Forwarding no X11Forwarding yes
のように変更します。
クライアント側の設定
/etc/ssh/ssh_configの最後、または、~/.ssh/configの最初に
Host * ForwardX11 yes ForwardX11Trusted yes
を追加しておきます。一定時間経過後にX Forwardingが無効になってしまう場合、ForwardX11Timeout 86400
も追加しておくと回避可能です(この場合は1日)。
*Xquartzが立ち上がらない不具合が発生することがあります。まずは、ローカルでxcalcなどXを使用するプログラムを試し、Xquartzの起動を確認します。自動で起動しない場合には、次のように手動でXquartzを起動してみます。open /Applications/Utilities/XQuartz.app/Contents/MacOS/X11
*コマンドを起動したターミナルを閉じてしまうと、Xquartzも終了してしまいます。
[top]