Запуск графического приложения по SSH [Решено]

Что не так с запуском графического приложения (xclock) на удаленной машине по SSH с выводом графики на клиентскую машину?

В книге проекта LDP "Introduction to Linux" в разделе "10.4.4.2. X11 and TCP forwarding" сказано (насколько я понял), что достаточно (после соединения с удаленной машиной) дать команду:
$ xclock &
У меня получилось следующее:
$ xclock &
[1] 2911
$ Error: Can't open display:

В этом состоянии никакой графики на клиентской машине нет, она висит пока не нажмешь Ctrl+D. В примере из книги перед командой $ xclock & показано следующее:
$ echo $DISPLAY
localhost:10.0

У меня эта команда ничего не выдает. По поводу DISPLAY приведу цитату из книги:

If the X11Forwarding entry is set to yes on the target machine and the user is using X applications, the
DISPLAY environment variable is set, the connection to the X11 display is automatically forwarded to the
remote side in such a way that any X11 programs started from the shell will go through the encrypted channel,
and the connection to the real X server will be made from the local machine. The user should not manually set
DISPLAY. Forwarding of X11 connections can be configured on the command line or in the sshd
configuration file.

sshd_config на удаленной (target) машине:

Здесь в теме "Нужна помощь с SSH [РЕШЕНО]" salt писал (14 Июль, 2009 - 22:57):

Графические приложения на удаленной машине по ssh запускать можно. Код:
DISPLAY=:0 soft
где DISPLAY=:0 - номер первого графического экрана
soft - имя запускаемого приложения

Но когда я на клиентской машине дал:
DISPLAY=:0 xclock
окно с часами открылось на удаленной машине.

P.S. На удаленной машине (сервер) OS Mint KDE 14, на клиентской - OS Kubuntu 12.04.

0
dyug - 30 Июль, 2013 - 16:23

Эмм...
Я запутался...
После 4 раз чтения..
Как ты устанавливаешь соединение между машинами?
ssh -X [email protected] ?
потом на удаленной машине xclock ?
ну у меня так работает.
Правил ли я ссхд - уж не припомню. :-)

0
aleckm - 30 Июль, 2013 - 16:49

На клиентской машине в окне терминала даю:
$ ssh name
где name - символическое имя серверной машины, прописанное в /etc/hosts; далее ввожу запрашиваемый пароль и выдается сообщение о подключении к удаленной (серверной) машине с ее приглашением.
Потом в этом терминале с серверным приглашением даю:
$ xclock &
и т. д.

0
dyug - 30 Июль, 2013 - 17:05

Судя по всему, вы не очень тщательно прочли мой пост.
ssh -X ключ обязательно!

0
aleckm - 30 Июль, 2013 - 18:30

Тут вы правы - тщательнее нужно было мне прочитать ваш пост: ключ -X решил бы дело.
Спасибо за ваши ответы!

0
Cyber_M - 30 Июль, 2013 - 16:31
Изображение пользователя Cyber_M.

Делал всегда так

взято тут

и еще убедитесь что права на удаленном хосте принадлежат пользователю

ls -l ~/.Xauthority

+2
aleckm - 30 Июль, 2013 - 18:26

Спасибо за разъяснения!

Создал ~/.ssh/config и прописал в нем строку:
ForwardX11 yes

В /etc/ssh/ssh_config эта строка закомментирована, а по умолчанию берется значение no. Теперь при запуске (даже без ключа -X):
$ ssh hostname (с последующей авторизацией)
$ xclock &
часы появились на клиентском хосте, ура!
Форумы СПО - это сила!

Задержка с ответом - отвлекался от компютера ;-)

0
Cyber_M - 31 Июль, 2013 - 14:49
Изображение пользователя Cyber_M.

Рады что вам тут нравится

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры