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


114

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

回答:


89

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

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

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

これらのことについてもっと知りたい場合は、XsecurityマンページまたはX Security拡張仕様を読むことをお勧めします。さらに、オプションForwardX11を確認したり、で確認したりできForwardX11Trustedます/etc/ssh/ssh_config


6
sshのマンページは不幸な言葉遣いを使用しており、(少なくとも私にとっては)-Xは安全ではなく、-Yはより良いことを示唆しています。この答えをありがとう。
トーステンブロンガー14

だから、-X他のクライアントがデータを盗聴したり変更したりすることは不可能ですか?
ムシフィル14年

6
それでは、なぜ一般的な-Y代わりに使用したいのでしょう-Xか?
ワーナイト

私は同じ質問を持っています(使用する理由-Y)、これが役立つかもしれないと理解した唯一のケースは、サーバー側のセキュリティ制御が何らかの形で実装されていない/互換性がないときです。また、X11の転送は一般的に強力で危険なツールであり、そのように扱う必要があることも読みました。
MakisH

5
「-Xの代わりに-Yを使用する理由」に答える 質問、-Xはタイムアウト後に転送をドロップしますが、-Yはそうではありません。ただし、-XオプションのForwardX11Timeoutを使用して、この構成をオーバーライドできます。
セブ

23

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

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

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

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

信頼できない X11転送では、リモートプログラムが自分のウィンドウのみにアクセスし、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


1

この-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.

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

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

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

-x   Disables X11 forwarding.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.