LinuxでSSHを介してグラフィカルなXアプリを実行する方法
LinuxサーバーでXアプリをリモートで実行し、SSHのX転送を使用してローカルマシンにその出力を表示できます。方法は以下の通りです。
X11はほとんどのLinuxデスクトップの基盤として残っていますが、そのネットワークの透明性、つまりネットワーク上で出力を表示する能力は、あまり注目されていない機能の一つです。SSHを使うことで、リモートマシン上でLinuxのGUIアプリを簡単かつ安全に実行し、あなたのマシンに表示することができます。
なぜリモートでLinuxアプリを実行するのか?
なぜ別のマシンでグラフィカルなLinuxプログラムを実行したいのか?もしRやMathematicaのような複雑な科学計算プログラムを使用している場合、より強力なマシンで実行しながら、Chromebookなどの軽量な計算環境をローカルで使用することができます。
中央サーバーにインストールすることで、複数のユーザー間で技術アプリケーションを共有する優れた方法でもあります。
サーバー上でのX接続の承認
SSHを介してX11接続を有効にするためには、リモートサーバーでX11転送を有効にする必要があります。これは/etc/ssh/sshd_configファイルを使用して行います。
このファイルを編集するには、ルートユーザーとして開かなければなりません。「X11Forwarding」オプションまでスクロールし、まだ有効になっていない場合は「yes」に変更します。SSHサーバーを再起動するには、systemctlコマンドを使用します。
sudo systemctl restart sshd先頭の「#」コメント文字を削除して、これを有効にする必要があるかもしれません。完了したら、ファイルを保存し、OpenSSHサーバーがすでに実行されていない場合は、開始してください。管理者でない場合は、管理者にこれを実行してもらう必要があります。
SSHを使用してリモートでグラフィカルXアプリを実行する
Xアプリをリモートで実行するには、クライアント側でXフォワーディングを有効にする-Xオプションを使ってSSH経由でリモートサーバにログインします。
ssh -X username@serverプログラムを実行するには、デスクトップLinuxシステムにいるかのようにコマンドラインからそれらを呼び出してください。すべてがうまくいけば、プログラムは他の場所で実行されているにもかかわらず、デスクトップに表示されるはずです。
X転送が遅いため、コマンドを実行してからウィンドウが開くまでに時間がかかることがあります。フルデスクトップが必要な場合やアプリを早く実行したい場合は、VNCのような別のリモートディスプレイソリューションを検討することをお勧めします。
問題が発生した場合は、-Yオプションを使用して、-Xの代わりに試してみてください。これによりいくつかのセキュリティチェックが無効になりますが、XアプリをSSH経由で実行することは可能です。それでもうまくいかない場合は、上記のようにリモートマシンでXフォワーディングが有効になっていることを確認してください。
今、SSHを介してLinuxアプリを実行できるようになりました
SSH Xフォワーディングを使うと、リモートでLinuxのGUIアプリを簡単に実行できます。これは、リモートシステムをまるで自分がキーボードと画面の前に座っているかのように使えることから、ネットワーク指向のLinuxの特性を示しています。どこにいても、SSHの設定が完了すれば、安全なリモートログインはとても簡単です。


