web-dev-qa-db-ja.com

`ssh -Y`(信頼されたX11転送)と` ssh -X`(信頼されていないX11転送)の違いは何ですか?

ssh -Y(信頼できるX11転送)とssh -X(信頼できないX11転送)の違いは何ですか?私が理解した限りでは、それはセキュリティと関係がありますが、違いといつ使用するかを把握していませんでした。

114
Martin Ueding

どちらのオプションも、X11転送と関係があります。これは、これを有効にすると、SSHセッションを介してグラフィカルクライアントを使用できることを意味します(Firefoxなどを使用します)。

ssh -X remotemachineを使用すると、リモートマシンは信頼できないクライアントとして扱われます。したがって、ローカルクライアントはリモートマシンにコマンドを送信し、グラフィカル出力を受け取ります。コマンドがセキュリティ設定に違反している場合は、代わりにエラーが表示されます。

ただし、ssh -Y remotemachineを使用すると、リモートマシンは信頼できるクライアントとして扱われます。この最後のオプションは、セキュリティの問題を引き起こす可能性があります。他のグラフィカル(X11)クライアントがリモートマシンからデータを盗聴することができ(スクリーンショットを作成し、キーロギングやその他の厄介なことをする)、それらのデータを変更することさえ可能であるためです。

これらのことについてもっと知りたいなら、 Xsecurity manpage または X Security extension spec を読むことをお勧めします。さらに、ForwardX11のオプションForwardX11Trustedおよび/etc/ssh/ssh_configを確認できます。

89
qbi

X11プログラムをリモートで実行する必要がない場合は、neitherを使用します。 -Xを使用するとき;そして、あなたが気にするX11プログラムが-Xよりも-Yの方がうまく機能する場合、-Yを仮定的に使用します。ただし、現在(Ubuntu 15.10)、ssh_configを編集してForwardX11Trusted noと言う場合を除き、-Xは-Yと同じです。 -Xはもともと1990年代のXセキュリティ拡張機能を有効にすることを目的としていましたが、これは古くて柔軟性がなく、一部のプログラムをクラッシュさせるため、デフォルトでは無視されます。

Ssh -Y-Xの両方を使用すると、ローカルのXモニターにウィンドウが表示された状態で、リモートマシンでX11プログラムを実行できます。問題は、プログラムが他のプログラムのウィンドウとXサーバー自体に対してできることです。

local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.

信頼済み X11転送は-Yによって有効になります。これは歴史的な動作です。ディスプレイへのアクセス権を持つプログラムは、全体ディスプレイへのアクセス権で信頼されています。 otherプログラムのすべてのウィンドウにスクリーンショット、キーログ、および入力を注入できます。また、セキュリティにさらされている加速グラフィックスなどのすべてのXサーバー拡張機能を使用できます。これはスムーズに実行するのには適していますが、セキュリティには悪影響があります。リモートプログラムがローカルプログラムと同じくらい安全であると信頼しています。

信頼できない X11転送は、リモートプログラムがownウィンドウのみにアクセスし、Xの比較的安全な部分のみを使用するように制限しようとします。これは良いように聞こえますが、現在は実際にはうまく機能しません。

-Xの意味は現在、sshの設定に依存しています。

Ubuntu 14.04 LTSでは、ssh_configを編集しない限り、-X-Yの間に違いはありません。 「[B]現在、[信頼できない]モードでクラッシュするプログラムが多すぎるためです。」

ubuntu1404$ man ssh
...
 -X      Enables X11 forwarding.  This can also be specified on a per-Host
         basis in a configuration file.
         ...
         (Debian-specific: X11 forwarding is not subjected to X11 SECURITY
         extension restrictions by default, because too many programs cur‐
         rently crash in this mode.  Set the ForwardX11Trusted option to
         “no” to restore the upstream behavior.  This may change in
         future depending on client-side improvements.)

ubuntu1404$ grep ForwardX11Trusted /etc/ssh/ssh_config
#   ForwardX11Trusted yes

ForwardX11Trusted noの場合、-X信頼できない転送を有効にします。それ以外の場合、-X-Yと同じように扱われ、ディスプレイへのアクセスが可能なリモートプログラムが使いやすいことを信頼します。

23
Mitchell

-Xオプションは、X11転送を有効にします。

-X   Enables X11 forwarding.  This can also be specified on a per-Host
     basis in a configuration file.

     X11 forwarding should be enabled with caution.  Users with the
     ability to bypass file permissions on the remote Host (for the
     user's X authorization database) can access the local X11 display
     through the forwarded connection.  An attacker may then be able
     to perform activities such as keystroke monitoring.

     For this reason, X11 forwarding is subjected to X11 SECURITY
     extension restrictions by default.  Please refer to the ssh -Y
     option and the ForwardX11Trusted directive in ssh_config(5) for
     more information.

Ssh_config(5)のForwardX11Trustedディレクティブに対応するオプション-Yは、X11 SECURITY拡張制御を削除するため、さらに安全性が低下します。

-Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
        subjected to the X11 SECURITY extension controls.

-xを使用する方が安全です

-x   Disables X11 forwarding.
1
Ortomala Lokni