Яка різниця між ssh -Y
(довірене переадресація X11) та ssh -X
(ненадійне перенаправлення X11)? Наскільки я це зрозумів, це має щось спільне з безпекою, але я не зрозумів різниці і коли використовувати.
Яка різниця між ssh -Y
(довірене переадресація X11) та ssh -X
(ненадійне перенаправлення X11)? Наскільки я це зрозумів, це має щось спільне з безпекою, але я не зрозумів різниці і коли використовувати.
Відповіді:
Обидва варіанти мають відношення до перенаправлення X11. Це означає, що якщо увімкнути це, ви можете використовувати графічного клієнта через сеанс SSH (наприклад, використовувати Firefox або щось інше).
Якщо ви користуєтесь ssh -X remotemachine
віддаленою машиною, це трактується як недовірений клієнт. Тож ваш локальний клієнт відправляє команду на віддалену машину і отримує графічний вихід. Якщо ваша команда порушує деякі параметри безпеки, ви отримаєте помилку.
Але якщо ви користуєтесь ssh -Y remotemachine
віддаленою машиною, це трактується як надійний клієнт. Останній варіант може відкрити проблеми безпеки. Оскільки інші графічні (X11) клієнти можуть нюхати дані з віддаленої машини (робити скріншоти, робити брелоки та інші неприємні речі), і ці дані навіть можливо змінити.
Якщо ви хочете дізнатися більше про ці речі, пропоную прочитати сторінку Xsecurity або специфікацію розширення X Security . Крім того, ви можете перевірити варіанти ForwardX11
і ForwardX11Trusted
в своєму /etc/ssh/ssh_config
.
-X
чи неможливо для інших клієнтів нюхати чи змінювати дані?
-Y
замість -X
загального?
-Y
), і єдиний випадок, який я зрозумів, що це може бути корисним, це коли контроль безпеки на стороні сервера якимось чином не реалізований / не сумісний. Я також читав, що пересилання X11, як правило, є потужним і небезпечним інструментом, до якого слід ставитися як до такого.
Не використовуйте ні тоді, коли вам не потрібно дистанційно запускати програми 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
, як , довіряючи, що віддалені програми з доступом до дисплея є дружніми.
-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.