sshを使用してLinuxマシンでGUIプログラムを実行する


3

sshを使用して、リモートのUbuntuマシンでGUIプログラムを開いて実行しようとしています。

ssh経由で接続したマシンで、FirefoxやSkypeを開きたいと思います。しかし、user2でログインして書き込みsudo -u user1 firefoxを行うと、ディスプレイが指定されていないというエラーメッセージが表示されます。

マシンの電源を入れてuser1でログインすると、GUIが利用可能であることをubuntuに認識させられないように見えます。

私は代替ソリューションを気にしませんが、私はこの特定のシナリオで助けを望みます。

回答:


2

X11Forwarding yesSSHサーバーの構成ファイルで設定します(/etc/ssh/sshd_config)。サーバーを再起動sshし、-Xまたは-Yオプションを使用してクライアントマシンで実行します(これはOpenSSHで動作するはずです)。


プログラムのGUIをリモートマシンで起動したいということを忘れていました。
マーティン

0
dbus-launch firefox&

これは過去にシェルから機能しましたが、SSH経由で試してみることができます。


0

sudoを使用すると状況が少し複雑になり、いくつかの追加手順が必要になります。

/ etc / ssh / sshd_configを他の人が言及したようにセットアップした場合

X11Forwarding yes

次に、user2としてボックスにssh'nします

$ ssh -YC remote.example.com

user2としてリモートXアプリを実行できるはずです。多くのXベースのシステムでこれをテストする簡単な方法は、実行することです

$ xlogo

firefoxは同様に動作しますが、firefoxのようなものに比べて非常に軽量です。

Xがリモートssh接続を介してuser2として動作していることが確認できたら、user1のsudoで動作させることができます。問題は、user1にsudoを実行すると、リモートXフォワーディングを使用する権限が失われることです。これを回避するには、まずuser2としてログイン後に次の操作を行います

$ echo $DISPLAY
localhost:17.0
$ xauth list
<snip>
carlisle/unix:17  MIT-MAGIC-COOKIE-1  161bda5fc81200a4e74e578009177fb8

同じディスプレイ番号を含む行が表示されるはずです。この例では17です。xauthリストの出力で一致する番号を検索する必要があります。次に、user1にsudoを実行し、xauth addコマンドを実行して、上記に一致したauth行を追加します

$ sudo su - user1
$ xauth add carlisle/unix:17  MIT-MAGIC-COOKIE-1  161bda5fc81200a4e74e578009177fb8

これで、必要なアプリを実行できるようになります。

$ xlogo  # or any X app such as firefox 

〜user2 / .Xauthorityをロックできないというエラーが発生した場合、sudoを使用してuser1に切り替える前に、そのファイルのアクセス許可を調整する必要があります。厳密には安全ではありませんが、テストするために、そのファイルでファイル許可をchmod 666に設定できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.