передающая проблема ssh X11

Я поместил ForwardX11 в моем ~/.ssh/config и затем я запускаю приложение X11 как это:

ssh -f user@host 'someapp; sleep 1'

Это хорошо работает.

Приложение someapp имеет кнопку, которая открывает приложение средства просмотра с помощью сценария оболочки viewer.sh. Когда я нажимаю кнопку, средство просмотра подходит.

Это - вся польза и как ожидалось, но если я делаю

ssh -2 -f user@host 'someapp; sleep 1'

существует проблема. someapp запускается очень хорошо, но если я нажимаю кнопку, средство просмотра не обнаруживается.

Как средство просмотра называют с помощью сценария оболочки, я заменил вызов xclock и ситуация была точно тем же - я думаю, что средство просмотра не виновато. Ситуация является тем же на Linux и AIX.

Причина мне нужно -2 это, я наконец хочу использовать мультиплексирование соединения, и это действительно только работает с версией 2. Причина sleep 1 это, это не работало иначе;-)

Добавить больше беспорядка, с

ssh -2 -f user@host 'xterm &; app; sleep 1' 

работы средства просмотра пока xterm открыты. Когда я закрываю xterm ssh -v производит следующее

debug1: channel 1: FORCE input drain
debug1: channel 0: free: client-session, nchannels 3
debug1: channel 1: free: x11, nchannels 2

и с того момента средство просмотра не показывает, когда я нажимаю кнопку.

Я также заменил приложение средства просмотра сценарием, который пишет $DISPLAY переменная в файл. Переменная всегда устанавливается правильно.

3
задан 03.05.2010, 06:38

3 ответа

Соединение SSH Вы - инициирование, не ложится спать только пока:

  1. Команды, которые Вы указали, работают.
  2. Существуют активные соединения X11.

В Вашем случае, когда Вы указываете "someapp; спите 1 дюйм, это означает, что после "someapp" выходы, существует 1 окно второго раза, в котором должно быть установлено новое соединение X11, прежде чем соединение завершается.

SSH не может знать отдельно, когда он должен завершиться, если someapp запускает другое приложение в фоновом режиме, которое только позже соединится с этими X дисплеями - следовательно необходимо разработать что-то, чтобы дать ему ту информацию. Как сценарий обертки, который не выходит до программы, порожденной выходами средства запуска.

Или просто скажите "сон 1 день" и быть счастливыми.

2
ответ дан 08.12.2019, 00:39

Также необходимо включить AllowX11Forwarding на стороне сервера. Это могло бы быть, что это - не нужный/, используемый для SSH1.

Для получения дополнительной информации посмотрите здесь

0
ответ дан 08.12.2019, 00:39

Вы попробовали ForwardX11Trusted вместо ForwardX11? ForwardX11Trusted более новые опции, который позволяет "доверяемые" соединения. Это означает, что Ваш локальный X-сервер позволит удаленному соединению сделать больше.

Эта статья обсуждает более подробно, что продолжается и что Вы могли бы открыть себя до того, если Вы используете это вместо этого ForwardX11.

2
ответ дан 08.12.2019, 00:39

Теги

Похожие вопросы