web-dev-qa-db-ja.com

Linux用のWindows 10サブシステムでSSHを介したX11転送を設定しますか?

Raspberry Pi 3モデルB +をローカルネットワークに接続していますが、問題なくSSHで接続できます。すべてがコマンドラインで行われるため、これはいくつかの問題を引き起こします。

私が本当にやりたいのは、Linux用のWindowsサブシステムに付属のSSHクライアントを使用してX11転送を使用することです。 1803アップデートがインストールされたWindows 10 Proを実行しています。

この機能の使い方について知りたいのですが。 Windows 10でネイティブに機能しない場合は、いつでもLinux仮想マシンを実行してRaspberry Piに接続できます。

9
Cromulent

現在の設定を考えると、これは間違いなく可能です。 PuTTYを使用 のオプションもあることに注意してください。ただし、どちらの場合でも、クライアントマシンであるXサーバー(Linux用のWindowsサブシステム)を実行する必要があります— [〜#〜 ] wsl [〜#〜] 。 Xウィンドウシステムの client-server model は、X転送を簡単に引き離すことができる部分です。必要なのは、ホストとクライアントで実行されているXサーバーだけです。

Raspberry Pi(ホスト)構成

最初に、ホストマシン(Raspberry Pi)上のSSHサーバーの構成を少し調整します。まず、etcディレクトリ内のsshd_configファイルを見つけます。これらのコマンドを実行するには、Raspberry Piにsshでログインするか(Sudo対応のアカウントを使用)、Piに直接アクセスしてターミナルを開きます。

いったん入ったら、次のコマンドを実行します。

cd /etc/ssh

Sshd構成ファイルのバックアップを作成します。

cp sshd_config sshd_config.ORIG

originalファイルをテキストエディターで開きます。

Sudo nano sshd_config

使い慣れたテキストエディタを選択できます(nanoテキストエディタのショートカットは、 ここを参照 )。これは、sshサーバーのメイン構成ファイルです。次の行を見つけてコメント解除します。

X11Forwarding yes
X11UseForwarding yes

保存して終了。次に、PiのSSHサーバーを次のコマンドで再起動する必要があります。

Sudo systemctl restart sshd

Windows(クライアント)セットアップ

これでホストは完了です。 WindowsにXサーバーをインストールするだけです。いくつかのオプションから選択できますが、ダウンロードできるCygwin Xを使用します こちら 。それをインストールして実行すると、Xプログラムの表示に使用されるクライアント上に小さなウィンドウが表示されます。これで、WSLシェルに戻って簡単なコマンドを実行することにより、X転送が行われていることをテストできます。

xclock

Cygwinによって生成されたウィンドウに単純な時計が表示されます。 WSLシェルに戻ってCtrl + Cを押すと、クロックを終了できます。このコマンドが認識されない場合は、最初にx11-graphicsアプリケーションをホストマシンにインストールする必要があります。

Sudo apt-get install x11-apps

これでX転送が有効になり、すべてのRaspberry PiのアプリケーションをWindowsから実行できるようになります。


XDMCP、FreeNXに関する注意

X転送で許可されているapp-by-appだけではなく、Piからデスクトップ環境全体を実行するように、さらに一歩進めて設定することもできます。利用できる一般的なオプションをいくつか示します。

  • XDMCP:これは設定が最も簡単ですが、 悪名高いほど安全ではありません であり、ほとんどの当局は信頼できる有線LAN(ホームネットワークなど)でのみ実行することを推奨しています。これは価値があるよりもトラブルになるかもしれませんが、詳しく調べたい場合は この初期セットアップ用のRasp Piスレッド を参照してください。
  • FreeNX:XDMCPよりも安全で、定期的に、場合によっては完全に別のネットワークからこれを実行する場合は、セットアップする時間を割く価値があります。ホストにFreeNXサーバーをインストールし、Windowsクライアントで別のソフトウェアNoMachineを使用する必要があります。非常に詳細なガイドについては こちら を参照してください。
9
baelx

WSLシェルで、完全修飾DISPLAYをエクスポートしたことを確認します

export DISPLAY = localhost:0.0

以下は機能しません:export DISPLAY =:0.0

:0.0は(TCP/IPソケットの代わりに)UNIXドメインソケットに依存しており、どういうわけかX転送は正しく接続されません。同じ問題がありました。

9
Carl Zmola

X11は、グラフィカルインターフェイスを表示するマシンをX Windows SERVERと見なし、情報を提供するマシンをX Windows CLIENTとして表示します。これは通常のクライアント/サーバー関係の逆です。ローカルマシン(物理ディスプレイのあるマシン)をグラフィックサーバーと考え、リモートマシンをグラフィッククライアントと考えます。

0
Robert Gallaway