
何か問題があったので、次の良い情報が見つかりませんでした。
あなたはどのように過ごしますか?またはSSH()を介してデスクトップ全体を配信できないのはなぜですかssh -X
?
私は単一のウィンドウを渡すのにとても慣れていますssh -X
。しかし、時には私のLinuxノートブックを他のLinuxシステムの愚かな端末として使用したいと思います。
私はいつも私のラップトップからデスクトップ環境を終了し、コマンドラインから別のコンピュータにSSH経由で接続し、自分のラップトップに渡されたデスクトップ環境を起動できるようにする必要があると思いました。
オンライン検索を実行すると、VNCやXephyrなどのさまざまなサードパーティ製のツールや単一ウィンドウのSSHコマンドと設定が表示されます。しかし、それは私が探しているものではありません。これを行う方法やこれが不可能な理由を理解するために、いくつかの解剖学的構造(xwindows?、wayland?、gdm?)を理解したいと思います。
メモ:
- Xephyrはウィンドウでリモートデスクトップを実行しようとしているので、私が探しているものではありません。
- VNCはいくつかの理由で私が探しているものではありません。特にX11転送ではなくビットマップ転送だからです。
答え1
どのようにできますか?
私はXmoduloサイト(現在一時停止中)で次の方法を使用して、UbuntuシステムからRaspberry Piデスクトップ全体にリモートでアクセスしました。私は元のRPi、RPi2、RPi3で動作します。もちろん、リモートシステムでX11の配信を許可するには、sshd_configを変更する必要があります(クライアント/ホストと言いたいのですが、X11では他の用途とは異なる方法で使用されると思われるので混乱する可能性があります)。スペースに注意してください。入力できないと、スペースが原因でプロセスが壊れることがよくあります。
これにより、デスクトップ全体があり、物理的に接続されているかのようにコンピュータを実行できます。CTRL++を使用ALTしてUbuntuに切り替えてから、++を使用してF7RPiに戻りました。 YMMV。 1つの珍しい点:前後に切り替えるときは、別のファンクションキーを押す前に物理的に+を離す必要があります。CTRLALTF2CTRLALT
元のリンク: http://xmodulo.com/2013/12/remote-control-raspberry-pi.html
原作:Kristophorus Hadiono。残念ながら、参照された画像が失われました。
更新(20230411):サイトがバックアップされているようです。
方法#3:SSHを介したX11デスクトップの配信
X11+SSH転送を使用すると、実際にスタンドアロンのGUIアプリケーションだけでなく、Raspberry Piのデスクトップ全体をリモートで実行できます。
ここでは、X11転送を介して2番目の仮想端末(仮想端末8など)でリモートRPiデスクトップを実行する方法を示します。デフォルトでは、Linuxデスクトップは最初の仮想端末である仮想端末#7で実行されます。 RPi デスクトップを 2 番目の仮想端末に表示するには、次のガイドラインに従ってください。
コンソールまたは端末を開き、rootユーザーに変更します。
sudo su
仮想端末 8 で xinit をイネーブルにする次のコマンドを入力します。自動的に仮想端末8に切り替わります。CTRL++を押してALT元の仮想端末7に戻すことができますF7。
xinit -- :1 &
仮想端末8に切り替えたら、次のコマンドを実行してRPiデスクトップをリモートで起動します。リクエストに応じてpiユーザーのパスワードを入力してください(下の画像を参照)。
DISPLAY=:1 ssh -X [email protected] lxsession
リモートRPiデスクトップとアクティブ仮想ターミナル7で起動されたコンパクトターミナルを新しい仮想ターミナル8にインポートします(下の図を参照)。
覚えている、欲しくない端末を閉じます。それ以外の場合、RPi デスクトップはすぐにシャットダウンされます。
+CTRLまたは+ ALT+を押して、最初の仮想端末と2番目の仮想端末の間を移動できます。F7CTRLALTF8
X11+SSHを介してリモートRPiデスクトップを閉じるには、アクティブな仮想端末8(上記の画像を参照)に表示される小さな端末を閉じるか、仮想端末7で実行されているsuセッションを終了できます。
答え2
まだテストしていませんが、ローカルX11サーバーをシャットダウンして(通常はX11ディスプレイマネージャを停止して)gdm
仮想sddm
コンソールxdm
に*dm
ログインし、GNOMEの場合はカスタムX11セッションを開始します。
xinit ssh -X user@remote-server gnome-session
またはKDEの場合:
xinit ssh -X user@remote-server startkde
通常、X11ディスプレイマネージャはX11サーバーを起動し、ログインダイアログボックスを表示し、認証を処理し(オプションで認証の前後にいくつかの初期化スクリプトをrootとして実行します)、ログインしたユーザーのように単一のコマンドまたはスクリプトを実行します。会議の中心になります。このスクリプトの一般的な基本バージョンはありますが、/etc/X11/Xsession
GnomeやKDEなどのデスクトップ環境では、それを独自のコマンドに置き換えることができます。このコマンド/スクリプトは、セッションの存続期間中はアクティブのままです。何らかの理由で終了すると、X11ディスプレイマネージャはセッションがログアウトまたはクラッシュしたと仮定し、X11サーバーをリセットして再起動します。
startx
X11ディスプレイマネージャなしで仮想コンソールで単一のX11セッションを開始したときにxinit
X11サーバーとセッションコマンド/スクリプトを起動するラッパースクリプト。
あなたが望むのはX11サーバーを起動することですが、ssh -X
ローカルセッションコマンドの代わりにそれを使用して実行することです。実際リモートホストのX11セッションコマンド/スクリプト。
このxinit
コマンドはローカルX11サーバーを起動しますが、クライアントはこのコマンドのみですssh
。これによりssh
、X11転送が確立され、リモートホストに接続され、ログインし、リモートホストから適切なデスクトップ環境セッションを開始するために必要なコマンドが実行されます。$DISPLAY
変数と~/.Xauthority
ファイルが設定されているため、すべてのssh -X
X11アプリケーション(X11ウィンドウマネージャを含む)を実行できる必要があります。
ただし、X11サーバーはローカルにアクセスできないため、パフォーマンスを向上させるさまざまなX11プロトコル拡張を自動的に使用することはできず、ネットワーク接続+ SSH暗号化によって顕著な遅延が発生します。ウィンドウマネージャと他のX11アプリケーション間のすべての対話は、X11サーバーを介して行う必要があります。これは、各方法がネットワークを2回通過することを意味します。そのため、ローカルデスクトップを実行するよりも確実に遅くなります。
一部のデスクトップウィジェットは、リモートで実行するときにホスト上のハードウェアデバイスおよび/またはシステムD-Busに期待されるすべてのアクセスレベルを必ずしも持つことができないため、混乱する可能性があります。
答え3
Lubuntu/LXDEで好きなことができます(私の考えでは!)。をssh -Y
使用してリモートLubuntuシステムにログインlxsession
し、ローカルで実行されているLXDEタスクバーを取得できます。ローカルで実行されているXウィンドウを含む他のXウィンドウを選択して管理するようです!ほとんどのXサーバーには、クライアントオペレーティングシステムで別々のフローティングXウィンドウとして実行するか、フルスクリーンを実行できるバックグラウンドで実行するオプションがあります。 (タスクバー自体はとlxsession
思いますlxpanel
)、2つのローカルxterm、ログインしてsshを介して開始されたMac iTermセッションlxsession
、リモートlxterm
とリモートxeyes
。
他のディストリビューションでは、デスクトップを実行するために別のコマンドが必要です(UbuntuやGNOMEを含むMintなど)。しかし、gnome-session
他のコンピュータで動作させることはできません。
答え4
ちょっと読まなければならないと思います。 Xがキーボードとマウスをサーバーとして説明し、賢い操作がクライアントとして起こるのは奇妙だと思うかもしれません。ただし、これは意味があります(クライアントはサーバーへの接続を開始します)。所望の結果を得るために混乱がどのように起こるかを理解する。
目標を達成する方法はいくつかあります。一部の解説者は、SSH接続を使用してxinitを実行することをお勧めします。 drkvogelはSSHを介して単一のプログラムを呼び出すことを提案します。ただし、そのプログラムが別のプログラムを起動できる場合は、ローカルシステムへの接続を切断せずに説明する効率的な機能を提供します。
しかし、Linux以前でも、人々は実際にはターミナルであるXターミナルでXアプリケーションを実行していました。どのアプリケーションもローカルで実行できませんでした。これらのデバイスを構成するために使用されるプロトコルはXDMCPと呼ばれます。クイックGoogle検索で見つかりました。これ初期ログイン機能を提供するXクライアントであるディスプレイマネージャを設定する方法について説明します。この記事では、サーバー(画面とキーボードがあるもの)でxnestを使用することについてのみ説明しましたが、リモートセッションにのみフルディスプレイを使用することも可能です。
X -query client.host.net
ここで、「X」はxinitが実行される最初のエントリであり、client.host.netはXクライアントが実行され変更されたディスプレイマネージャをホストする必要がある場所です。
ネットワーク転送はかなり安全ではありません。信頼できないネットワーク経由で接続するには、VPNの使用を検討してください。
Xはオーディオ機能を提供せず、ビデオ/キーボードとマウスのみを提供します。それが重要な場合は、スパイスを見てください。
もう少し熱心にインターネット検索をしてみると、次のような結果が出ます。https://tldp.org/HOWTO/XDM-Xterm/index.html