В чем разница между 'ssh -Y' (надежная пересылка X11) и 'ssh -X' (ненадежная пересылка X11)?

93

В чем разница между ssh -Y (надежная пересылка X11) и ssh -X (ненадежная пересылка X11)? Насколько я понял, это имеет какое-то отношение к безопасности, но я не понял разницы и когда использовать.

    
задан Martin Ueding 16.04.2011 в 21:42
источник

4 ответа

71

Оба варианта имеют какое-то отношение к пересылке X11. Это означает, что если вы включите это, вы можете использовать графический клиент через сеанс SSH (например, использовать Firefox или что-то еще).

Если вы используете ssh -X remotemachine , удаленная машина рассматривается как ненадежный клиент. Таким образом, ваш локальный клиент отправляет команду удаленному компьютеру и получает графический вывод. Если ваша команда нарушает некоторые параметры безопасности, вы получите сообщение об ошибке.

Но если вы используете ssh -Y remotemachine , удаленная машина рассматривается как доверенный клиент. Этот последний вариант может открыть проблемы безопасности. Поскольку другой графический клиент (X11) может обманывать данные с удаленной машины (делать скриншоты, делать кейлоггинг и другие неприятные вещи), и это даже возможно изменить эти данные.

Если вы хотите узнать больше об этих вещах, я предлагаю прочитать man-страницу Xsecurity или Спецификация расширения безопасности X . Кроме того, вы можете проверить варианты ForwardX11 и ForwardX11Trusted в /etc/ssh/ssh_config .

    
ответ дан qbi 16.04.2011 в 22:38
источник
14

Используйте ни , когда вам не нужно запускать 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 . Это историческое поведение. Программе, имеющей доступ к дисплею, доверяют доступ к экрану whole . Он может делать скриншот, keylog и вводить ввод во все окна программ other . И он может использовать все расширения X-сервера, в том числе такие, как ускоренная графика, которые представляют собой риски безопасности. Это хорошо для бесперебойной работы, но плохо для безопасности. Вы доверяете удаленным программам быть такими же безопасными, как ваши местные программы.

Неуправляемая переадресация X11 пытается ограничить удаленные программы доступом только к их собственным окнам и к использованию только тех частей X, которые относительно безопасны. Что звучит хорошо, но в настоящее время на практике не работает.

Значение -X зависит от вашей конфигурации ssh.

В Ubuntu 14.04 LTS, если вы не отредактируете свой ssh_config , между -X и -Y нет разницы. «[B] ecause слишком много программ в настоящее время сбой в [ненадежном] режиме.

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 , полагая, что удаленные программы с доступом к дисплею являются дружественными.

    
ответ дан Mitchell 30.03.2016 в 18:08
2

Да. -Y для доверенной пересылки X11, а -X для ненадежной пересылки X11. Пересылка X11 позволяет вам использовать X11 (то есть графические) приложения в сеансе SSH.

Я не уверен, что значимая разница между надежными и ненадежными соединениями X11, но я уверен, что это связано с конфигурацией на стороне сервера (т. е. ssh-config, sshd-config и т. д.). Проконсультируйтесь с вашим сервером или сетевым администратором о том, какой флаг использовать.

    
ответ дан Tyler K. 16.04.2011 в 22:00
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.
    
ответ дан Ortomala Lokni 10.01.2016 в 02:57