Переадресация SSH X11 — это нечто большее, чем обычная переадресация портов, и, вероятно, это самый простой способ добиться того, чего вы хотите.по крайней мере, с точки зрения пользователя .
Если вы хотите, чтобы технически было проще, вам нужно понять, как изначально предполагалось использовать X11.
В среде с несколькими компьютерами с поддержкой X11 -информация о пользователях может централизованно управляться с помощью NIS, а домашние каталоги могут совместно использоваться с выделенного дискового сервера для всех других компьютеров с NFS (с небольшим количеством автоматического монтирования. брошен в ). Все компьютеры также должны иметь возможность разрешать имена хостов друг друга. Предполагалось, что в доверенной внутренней сети вы ()не отключите порт прослушивания TCP вашего сервера X11.
В такой среде вы можете подключаться с одного хоста к другому, и вам нужно только убедиться, что DISPLAY
переменная среды установлена правильно, чтобы любая удаленная клиентская программа X11 могла установить прямое соединение с вашим локальным сервером X11, и таким образом, на ваш локальный дисплей. Поскольку домашние каталоги являются общими для NFS, один и тот же ~/.Xauthority
будет виден как удаленному, так и локальному хосту.
Если бы не было НИС? Это не проблема для X11 :, он не заботится об идентичности. Пока любой клиент, подключающийся к серверу X11, может предоставить правильный файл cookie аутентификации X11 из файла ~/.Xauthority
(или файла по умолчанию, отличного от -, на который указывает переменная среды XAUTHORITY
), X11 будет работать.. Однако без общих назначений номеров UID/GID совместное использование домашних каталогов может оказаться невозможным.
Без общего домашнего каталога? В этом случае вам также потребуется передать файл cookie аутентификации X11, как правило, извлекая его на хосте дисплея, например, с помощью. xauth nextract /some/file :0.0
, затем получить содержимое /some/file
, переданное на удаленный хост любым способом, и использовать там xauth nmerge
, чтобы добавить его в файл ~/.Xauthority
удаленного хоста.
(Или вы можете использовать xhost +
, чтобы отключить проверку безопасности либо полностью, либо только для определенного удаленного хоста.Но это оказалось очень плохой идеей,:если на удаленном хосте были другие пользователи, это открывало вам доступ xsnow
к вторжению, или к xroach
заражению, или к худшим вещам, таким как получение все ваши события клавиатуры и мыши для всего сеанса X11 отслеживаются.)
Но незашифрованный протокол X11 оказался довольно слабым местом в системе безопасности. Из-за законов США об экспорте криптовалюты в то время мир остановился на использовании SSH с переадресацией X11 и отключением TCP-порта сервера X11. Стало нормой видеть, что X-сервер запускается как Xorg -nolisten tcp <other options...>
.
Совсем недавно X.org признал это и перевернул логику прослушивания TCP :Если ваш дистрибутив Linux запускает сервер X11 без опции -nolisten tcp
по умолчанию, это может быть связано с тем, что ваша версия сервера X11 на самом деле требует явного -listen tcp
для включения классического и небезопасного прослушивателя TCP X11.
Так что... да, можно:
:0.0
через TCP)DISPLAY
указывала наkvmhost:0.0
Это позволило бы X11 работать «классическим способом» с минимальной дополнительной технической сложностью. Но на самом деле настроить гораздо сложнее, чем просто использовать ssh -X virtualmachine
, и это может открыть вас для различных старых, хорошо -известных атак.
Я попробовал вышеуказанное решение, но оно не сработало. Я использую Debian 10. Затем я искал другое решение и нашел это. Приведенное ниже решение было скопировано из "https://www.reddit.com/r/debian/comments/g13vxj/dropbox_users_in_testingsid_libpango100_to/".
Пользователи Dropbox в Testing/Sid :libpango1.0 -0 в libpango -1.0 -0 удаляет Dropbox --Вот быстрое решение
libpango1.0 -0 уже ушел в тестирование, поэтому его нельзя обновить, а другие пакеты сообщают о сломанных зависимостях. При ручном обновлении до libpango -1.0 -0, Dropbox (важный для меня пакет )удаляется, потому что зависит от старого имени пакета.
Возможно, Dropbox скоро выпустит исправленный пакет, но пока очень легко исправить deb-файл Dropbox:
Распаковать deb-файл:
dpkg-deb -R dropbox_xyz.deb dir/
Отредактируйтеdir/DEBIAN/control
и изменитеlibpango1.0-0
на libpango-1.0-0
Переупаковка в новый файл deb:
dpkg-deb -b dir/ dropbox_xyz-fixed.deb
Установите исправленный пакет Dropbox.
Установите libpango -1.0 -0, который безопасно удалит старый пакет, а затем обновит все остальное.
Я думаю, что самое простое решение — использовать установщик, упакованный в Debian, не -бесплатный, а не пакет, предоставленный Dropbox:
dropbox
; отредактируйте /etc/apt/sources.list
и убедитесь, что ваши строки buster
включают contrib
и non-free
в соответствии со строками
deb http://deb.debian.org/debian buster main contrib non-free
запустить sudo apt update
;
nautilus-dropbox
:sudo apt install nautilus-dropbox
. Пакет nautilus-dropbox
использует исходный код, предоставленный Dropbox .