26

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

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

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

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

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

4

2 に答える 2

18

このスレッドが古いことは知っています...しかし、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 Server と X Client は同じです (ローカル デスクトップの場合と同様)。したがって、クライアントが X に書き込むと、ローカル X サーバーが画面に書き込みます。表示プロセスは実際にはユーザーのコンピューター上で行われ、どこにいてもあなたのコンピューターがサーバーになります。クレイジーですね。

于 2015-02-26T23:51:42.593 に答える
6

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

https://github.com/nwrkbiz/android-xserver

次のいくつかの手順に従います。

  1. android-xserver を起動します
  2. ConnectBot などの ssh クライアントを起動します (リモート マシンにある必要がありますForwardX11 yes) 。
  3. xclock、xterm を実行します...その他の X11 ユーティリティ

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

于 2012-10-13T19:59:07.940 に答える