Я предполагаю здесь, основываясь на проблемах, которые у меня были в прошлом, которые я решил:
- вы подключаетесь к серверу vnc на машине B, отображая его с помощью клиента VNC на машине A
- вы запускаете консоль (xterm или эквивалентную) на машине B и используете ее для подключения к машине C
- вы хотите запустить приложение на основе X на машине C, чтобы оно отображалось на VNC-сервере на машине B, чтобы вы могли видеть его на машине A.
Я получил два решения. Мое оригинальное решение было основано на использовании rsh. С тех пор на большинстве наших серверов был установлен ssh, что упростило эту задачу.
Используя rsh, я собрал таблицу машин в зависимости от ОС и пользовательских параметров, которые бы руководили этим процессом в perl. Оболочки Bourne было недостаточно, и у нас нет bash на машинах Sun или HP (и в то время у нас не было bash для AIX - AIX 5L еще не было). Оболочка Korn также не была подходящей опцией, так как в большинстве наших Linux-боксов не установлен pdksh. Но, если вы не сталкиваетесь с этими ограничениями, вы можете реализовать эту идею в ksh или bash, я думаю.
В любом случае, я бы в основном запустил 'rsh $ machine -l $ user "$ cmd"', где $ machine, конечно, была машиной, на которую я входил, $ user, также очевидно (хотя, когда я входил в как «root» это имело некоторую разницу, так как у нас на нескольких машинах есть несколько корней по причинам, которые я до конца не понимаю), а $ cmd был в основном «DISPLAY = $ DISPLAY xterm», хотя если бы я запускал konsole, например, $ cmd будет "konsole --display = $ DISPLAY". Поскольку $ DISPLAY вычислялся локально (там, где он установлен правильно) и не передавался буквально через rsh, отображение всегда будет установлено правильно.
Я также должен был убедиться, что никто не сделал ничего глупого, как сброс DISPLAY, если он уже был установлен.
Теперь я просто использую ssh, убедитесь, что для X11Forwarding на сервере установлено значение (sshd_config), а затем я могу просто подключиться к компьютеру по ssh, позволить командам X проходить по сети в зашифрованном виде, и он всегда будет работать. обратно в нужное место.