В чем разница между `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.

QBi
источник
6
Man-страница ssh использует неверную формулировку, предлагая (по крайней мере для меня), что -X небезопасно использовать, а -Y лучше. Так что спасибо за этот ответ.
Торстен Бронджер
Итак, с -Xчем другие клиенты могут прослушивать или изменять данные?
Musiphil
6
Итак, почему бы хотеть использовать -Yвместо -Xвообще?
Wernight
У меня тот же вопрос (зачем использовать -Y), и единственное, что я понял, это может быть полезно, это когда контроль безопасности на стороне сервера как-то не реализован / не совместим. Я также читал, что пересылка X11, как правило, является мощным и опасным инструментом, который следует рассматривать как таковой.
MakisH
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и доверие к удаленным программам с доступом к дисплею.

Mitchell
источник
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.
Ортомала Локни
источник