ローカルマシン(A)とRaspberry PI 3(B)があります。
B HDMIモニターが接続されており、Raspbianオペレーティングシステムを実行しています。
Xアプリケーション(AでLibre Office Impressプレゼンテーションなど)を実行し、Bに接続されている画面に表示(表示)したいと思います。
A マシンの前でこれを行いたいです。
ssh -X to_A
B出身ではなく、- Aの出力を得るためにBでVNCを使用しない。
私は以下を探していません:
- Aでsshを使用してBでXアプリケーションを実行し、その出力をAに表示します(
from_a $ ssh -X machine_B
rdp / remmina / vncクライアントを介して実行可能)。 - AでSSHを使用して
from_a $ ssh machine_b from -> at_a_but_sshed_onto_b $ xhost + && export DISPLAY=:0 xeyes
実行 - Bへの直接物理アクセスを必要とするソリューション
私が試したことは、リモートXプロジェクトを実行できるように(B)を設定することでした...私が忘れたことがなければ、返されたnmap -p6000 machine_B
ポートは次のようになります。閉鎖、Aのコマンドラインで次を実行します。
A_machine $ env DISPLAY=B_machine:0 xeyes
ここでB_machineが設定さ/etc/hosts
れ、~/.ssh/config
失敗します。
X11をコピーする手順を完全に見逃したようです。魔法のクッキー.Xauthorityで...しかし、このステップは必要ないかもしれませんが、より簡単な方法がありますか?
編集:@Rostislav Kandilarovの質問に答えて、lightdmがXサーバーを起動したようですが、最も早く確認できるのは月曜日であることを確認してください--nolisten tcp
。
答え1
(以下に編集された以前の回答)
追加の要件は、Bに触れることなく、Aでこれをすべて行うことです。 BでXサーバーを実行し、Aでアプリケーションを使用して接続するときの問題は、このXサーバーが入力デバイス(キーボード、マウス)のみを使用することです。雨。したがって、アプリケーションを使用するには不要な入力デバイスを使用する必要があります。
原則として、Aの入力デバイスを共有しようとしますが、構造が複雑になり始めます。
だから仮想ネットワークコントローラはいたくさんこの場合、より簡単です。
vnc4server
AをAに設定します。このサーバーは、AのアプリケーションのXサーバーとしても機能します。xvnc4viewer
Aで起動し、それを使用してアプリケーションを起動して制御します。 Bで別のvncviewerを起動してAのサーバーに接続すると、アプリケーションが表示されます。簡単にすることもできますdirectvnc
(RaspPiのフレームバッファを直接使用し、Xを見回す必要がないためRaspPiの作業を減らします)、Bで既存のXサーバーを実行し続けたい場合は、他のサーバーを使用することもできますxvnc4viewer
。
最も簡単な方法は、リモートデスクトップを使用することです。仮想ネットワークコントローラ、すでにディストリビューションにパッケージとして含まれている可能性が高いです。これは通常、sshや他の手段を介したX転送よりもうまく機能します。なぜなら、それはよりよく圧縮され、回線でXプリミティブを使用しないからです。
もちろん、SSH経由または直接X転送を設定する方法はいくつかあります。たとえば、BからAにログインしてssh -X
Aからアプリケーションを実行し、Bに出力を表示できます。 (逆を除いたが、言及していないので、もちろんそれがあなたが望むものかどうかはわかりません)。
また、リモートセッション用にXサーバーを構成することもできます。XDMCP。または、xauth
単一のアプリケーションがリモートXサーバーを使用できるように正しい設定を使用してくださいDISPLAY
。
しかし、まだVNCを最初に試してみることをお勧めします。
答え2
したがって、(B)でRaspbian OSを使用していて、疑わしい特定のカスタマイズを行っていない場合は、おそらくlightdmを使用しているでしょう。
もちろん、Xサーバーがtcp(ポート6000)でリッスンするようにlightdmに指示する必要があります。xserver-allow-tcp=true
グローバルセクションのconfファイルに設定することでこれを行うことができます[Seat:*]
。明示的に指定する必要がありますxserver-command=X -listen tcp
(次を参照してください。)ここ)。追加ファイルを選択する/etc/lightdm/lightdm.conf.d/*.conf
か、から直接選択できます/etc/lightdm/lightdm.conf
。
次に、セキュリティにあまり興味がない場合は、xhost +
(B)で何らかの形式のコマンドを実行したい場合があります。たとえば、xhost + IP_OF_(A)
LANの脆弱性に興味がある場合です。あなたはしないでください最初にtcpを介してXを直接使用しますが、sshがない場合は(B)で実行して(A)と(B)の間でMIT-MAGIC-COOKIEを交換できるため、ハッキングが少し難しくなりますxauth extract - $DISPLAY | ssh (A) xauth merge -
。
その後、lightdmを再起動するservice lightdm restart
か、systemctl restart lightdm.service
OSのバージョンに応じて再起動してください。
最後に - (B) Xorgが6000を受信していることを確認してください。netstat -antp | grep -F 6000