web-dev-qa-db-ja.com

AndroidのSSH経由のXアプリケーション

次のように、SSH経由でXアプリケーションを実行することについて質問したいと思います。

Gnome 2xでSL6.3を実行しているLinuxデスクトップがあります。 On AndroidタブレットはCM9を実行しています。Android用のConnectbotとX-Serverがあります。SSH経由でConnectbotを使用してLinuxボックスに正常にログインできます。

Linuxboxの/ etc/ssh/sshd_configでX転送のオプションを設定しました(X11Forwarding yes)。

-Xオプションssh -X username @ hostname:portを使用すると、正しいパスワードを指定してもConnectbotが繰り返しパスワードを要求し、「認証方法 'password'が失敗しました」と表示されます。

タブレットでSSHを介してXアプリケーションを正常に実行するにはどうすればよいですか?環境はホームワイヤレスネットワークです。

23
user1733435

私はこのスレッドが古いことを知っています...しかし、私はpaulsm4の答えで誤解を招くものを明確にしたかったのです...

Xは後方です... Xサーバーに接続していません。ローカルマシンでサーバーを実行します(彼がクライアントと呼んでいるのは実際にはサーバーです)。 XライブラリがインストールされているリモートNixボックスに接続し、SSHコマンドに-Xスイッチを追加すると、sshはXリクエストを送り返します。反対側で実行されるプログラム(Gnome、Chrome、PyCharmなど)がXクライアントになり、Xサーバーを含むデスクトップにアップストリームされます。ここにシーケンス図としてあります:

User                                         Remote
-----------------------------------------------------------------------
User Inits SSH -X Session -----------------> SSH Server Auth User
                                                      |
                                                      V
SSH Session is established <---------------- SSH User is Authenticated
             |
             V
User Initiates App on server --------------> App Starts Running
                                                      |
                                                      V
                                             App Writes output to X Server
                                                      |
                                                      V
Xorg receives write commands <-------------- SSH Tunnels that back to User
             |
             V
Writing occurs on desktop
-----------------------------------------------------------------------

ほとんどの場合、XサーバーとXクライアントは同じです(ローカルデスクトップで発生します)。したがって、クライアントがXに書き込むと、ローカルXサーバーは画面に書き込みます。表示プロセスは、実際にはユーザーのコンピューター上で行われ、どこにいても、コンピューターがサーバーになります。クレイジーじゃない?

14
Kevin Fries

次のX11ServerをAndroidボックスにインストールできます

https://play.google.com/store/apps/details?id=au.com.darkside.XServer&hl=en

次のいくつかの手順を実行します。

  1. android-xserverを起動します
  2. connectBotのようなsshクライアントを起動します(リモートマシンはForwardX11 yes
  3. Xclock、xterm、その他のX11ユーティリティを実行します

Android-xserver、X11実装は完全なものではないため注意してください。

5
myset

はい、SSH経由でXアプリケーションを実行できます。

典型的なシナリオは、アプリケーション(そしておそらくLinuxデスクトップも)がXの「サーバー」に存在するということです。次に、ローカルPC(またはおそらくスマートフォンやタブレット)でアプリケーションを使用するために必要なのは、Xの「クライアント」だけです。

VNCは一般的なクライアントです。 VNCはX WindowsとSSHの両方を理解します。

LinuxまたはWindowsでSSH + VNCを実行するための優れたチュートリアルを次に示します。

また、VNC for Androidについて説明しているリンクもあります。

PS:

1)トラブルシューティングのヒントについては、最初のリンクをご覧ください

2)Android側のトラブルシューティングに役立つ追加のリンクを次に示します。

0
paulsm4