Рассмотрим ситуацию, когда я выполняю вход по SSH с компьютера A на компьютер B, у меня есть сеанс X на компьютере A, и я хочу запустить программу X на B.
ssh -X B
делает эту работу прозрачно. Но что, если не хватает конфигурации сервера X11Forwarding yes
, у меня нет корневых прав на сервере, а администратор сервера безразличен?
Очевидно, что возможно переадресовать соединение X11, поскольку я могу передавать все, что захочу, по каналу SSH. На самом деле, если локальный X-сервер разрешает TCP-соединения, это так же просто ssh -R 6010:localhost:6000
(как отрегулировать для отображаемых номеров). Как насчет общего случая, когда локальный X-сервер разрешает только сокет-соединения? Как сделать переадресацию X удобно и безопасно с минимальными требованиями к установке (особенно на B)?
источник
.ssh/config
стороне клиента, а на стороне.profile
сервера, а затем просто запуститеssh B
»./tmp/.X11-unix/X0
это сокет домена unix, а не FIFO, поэтому любая попытка перенаправления заканчивается наENXIO: No such device
.Раскрутите дополнительный X-сервер, используя Xephyr. Это для безопасности - это предотвращает компрометацию вашей удаленной системы.
Используйте SSH для пересылки удаленного сокета в сокет Xephyr. SSH также поддерживает пересылку сокетов Unix.
Правильно установите переменные среды на удаленном сервере.
источник