Яка різниця між `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 - краще. Тож дякую за цю відповідь.
Торстен Бронгер

Отже, -Xчи неможливо для інших клієнтів нюхати чи змінювати дані?
musiphil

6
То чому б хотіли використовувати -Yзамість -Xзагального?
Wernight

У мене те саме питання (навіщо використовувати -Y), і єдиний випадок, який я зрозумів, що це може бути корисним, це коли контроль безпеки на стороні сервера якимось чином не реалізований / не сумісний. Я також читав, що пересилання X11, як правило, є потужним і небезпечним інструментом, до якого слід ставитися як до такого.
Макіш

5
Відповідаючи на запитання "Навіщо використовувати -Y замість -X?" питання, -X скидає переадресацію після таймауту, а -Y - ні. Ви можете перекрити цю конфігурацію, використовуючи ForwardX11Timeout для параметра -X.
Себ

23

Не використовуйте ні тоді, коли вам не потрібно дистанційно запускати програми X11; використовувати, -Xколи ви робите; і гіпотетично використовувати, -Yякщо програма X11, про яку ви дбаєте, працює краще з -Y, ніж з -X. Але в даний час (Ubuntu 15.10), -X ідентичний -Y, якщо ви не редагуєте, ssh_configщоб сказати ForwardX11Trusted no. Спочатку -X призначений для включення розширення X Security 1990-х років, але це старе і негнучкість, а деякі програми виходять з ладу, і тому за замовчуванням ігнорується.

І 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.

Опція -Y, відповідна директиві ForwardX11Trusted в ssh_config (5), є ще менш захищеною, оскільки знімає елементи розширення X11 SECURITY.

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

Це безпечніше у використанні -x

-x   Disables X11 forwarding.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.