私のラップトップ(両方ともTrisquelを実行)でWi-Fi経由で自分のデスクトップコンピュータにアクセスするためにリモートデスクトップ接続を設定しようとしています。私はVNCを試してみましたが、遅すぎて他のオプションを探しています。理想的に私がやりたいことは、X転送を使用して私のラップトップの別々のtty(例えばtty8)で実行されているSSHを介してリモートXセッションを開始することです。これは可能なようですが、どのように機能するかを理解しようとしています。
SSHトンネルを介したX転送は、単一のXアプリケーションで正しく機能しているようですssh -X
。
startx lxsession -- :1 tty8
それでは、2つと2つを組み合わせると、SSHを使用してリモートコンピュータにログインし、次のコマンドを入力するとSSH接続を介してリモートセッションを開始できます。
startx gnome-session -- :1 tty8
しかし、いいえ、これは動作しません!次のエラーが発生します。
X: user not authorized to run the X server, aborting.
私が読んだことによれば、これを行うにはXDMCPおよび/またはXネストを使用する必要があるようです。
だから私の質問は:これを行うためになぜこれらの追加パッケージを使うべきですか?私はXがネットワークの透明性を持たなければならないと思います。この場合、私が使用したいttyがローカルまたはリモートコンピュータにあるのはなぜ知っているか気にしますか? XDMCP / XネストはXにデフォルトで含まれていないものをインポートしますか?
私はこれを理解し、よりよく理解しようとしています。
答え1
startx gnome-session -- :1 tty8
セッションでこのコマンドを実行すると、リモートで直接操作ssh -X
できなくなります。gnome-session
代わりに、実際にtty8
そのシステムに座っているすべての人のために、リモートホストの仮想コンソールからリモートでGNOMEセッションを開始しようとしています。
代わりに、パスワードまたはSSHキーのパスワードを入力するように求められず、アカウントを使用してリモートホストでコマンドを実行できるように、まずSSHキーを設定する必要があります。その後、次のように実行します。あなたの地域でシステム:
startx ssh -X <remote host> gnome-session -- :1 tty8
&
コマンドをバックグラウンドで実行するには、最後に追加する必要があります。
基本的には次のようになります。
1)tty8のXサーバー、セッションプロセスとして実行しています...
2)... SSH接続Xをリモートホストに転送します。ここで...
3)... gnome-session
SSH接続を介してディスプレイを起動し、ローカルtty8の「空の」Xサーバーに再送信します。
GNOMEがGPUの高度な3Dアクセラレーション機能を使用してデスクトップをレンダリングする場合は、ローカルで実行するときに直接レンダリング(= GNOMEウィンドウマネージャとXサーバー間の直接メモリアクセス)を使用します。このようなリモートセッションを実行すると、直接レンダリングが不可能になります(GPUがウィンドウマネージャプロセスと同じシステムにないためです!)、これが遅くなる可能性があります。この場合、より単純なウィンドウマネージャを選択する必要があるかもしれません。
XDMCPは制御プロトコルです。X11ターミナル:他のコンピュータでX11モニタ+マウス+キーボードとして機能するシンプルなコンピュータデバイスです。 XDMCPプロトコルはSSH以前に開発されており、完全に安全ではありません。 XDMCPは安全ではないため、最新のシステムではデフォルトで無効になっているため、XDMCPをサポートするようにディスプレイマネージャ(またはその他)を具体的gdm
にkdm
設定しない限り、あなたの場合は機能しません。これにより、ローカルXサーバーがX11端末であるかのように偽装され、リモートホストに直接、暗号化されていない非SSH転送接続を作成できます。 (拒否してください。」)xdm
*dm
startx
一方、Xネストを使用すると、tty7
通常のローカルX11セッション内に0.0(または)の大きなウィンドウを持つことができます。これにはリモートデスクトップセッションが含まれます。
答え2
私はこれにXnestを使用しますhttps://www.x.org/archive/X11R7.5/doc/man/man1/Xnest.1.html
インストール後(Debian/ubuntu/mint/etcのapt)端末を開き、次の操作を行います。
user@localhost:~$ Xnest :1 &
user@localhost:~$ export DISPLAY=:1
user@localhost:~$ ssh -Y user@remotehost
(login, etc)
user@remotehost:~$ mate-session
または、VT(ctrl + alt + F1など)を開き、を使用して新しいXサーバーをX :1
起動し、同じ操作を実行しexport DISPLAY=:1
てSSHに接続することもできます。個人的に私はXnestを好みます。