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