Настройка доступа к удаленному рабочему столу (KDE) в OpenSUSE 12.3

Аватар пользователя ragman

Категория: 

Читал много инструкций "Как настроить VNC...", но либо это были сторонние программы типа NX, либо после настроек по этим инструкциям получал ошибки подключения.
После долгих поисков, составил инструкцию для себя и решил поделиться ею. Уровень инструкции - для новичков, так как сам еще только осваиваю OpenSUSE. При подключении к удаленной машине, создается новый сеанс, а не дается доступ к текущему сеансу. Т.е. подключаться можно без локального входа на удаленной машине.

Версия системы - OpenSUSE 12.3. Предварительно на этапе установки системы были установлены пакеты раздела VNC. Рабочий стол выбран - KDE.

  1. Запуск YaST: “Пуск-Компьютер-YaST” (вводим пароль root)
  2. В разделе «Сетевые службы» находим пункт «Удаленное администрирование (VNC)».
  3. Устанавливаем «Разрешить удаленное администрирование» и «Открыть порт в брендмауэре». Нажимаем кнопку «Настройки брендмауэра…» и указываем необходимые сетевые интерфейсы, на которых нужно открыть порт.


    В моем примере интерфейсов два. так как пример делался на виртуальной машине в VM VirtualBox. При установке реальной машине, у меня был один интерфейс. В общем, здесь все зависит от конкретной конфигурации.
  4. Нажимаем «ОК» и «ОК».
  5. Запускаем терминал: «Пуск-Терминал».
  6. Переключаемся на суперпользователя (su), вводим пароль root'а. Запускаем создание пароля для VNC (vncpasswd) и вводим новый пароль для авторизации пользователя root по VNC. Этот пароль не связан с локальным паролем пользователя. Если пароль короткий, система его не примет. Пароли, длиннее 8 символов, будут обрезаны до 8 символов. В домашней папке пользователя в скрытой папке .vnc (в данном случае /root/.vnc), будет создан файл с паролем passwd. Проверить его наличие можно перейдя в каталог (cd /root/.vnc) и введя команду ls.
  7. Переходим в YaST. В разделе «Сетевые службы» запускаем «Сетевые службы (xinetd)».
  8. Внизу списка находим строку «vnc1», выделяем ее и нажимаем кнопку «Редактировать».
  9. В списке пользователей выбираем root и в поле «Аргументы сервера» добавляем через пробел «-rfbauth /root/.vnc/passwd». Здесь же можно изменить параметры экрана удаленного рабочего стола. По-умолчанию, стоит -geometry 1024x768 -depth 16.
  10. Нажимаем «Принять» и «Завершить».
  11. С клиентской машины подключаемся по адресу «ip_server:5901» и видим экран приветствия KDE.
  12. Если клиент не подключается, проверяем настройки брендмауэра. В YaST в разделе «Безопасность и пользователи» выбрать «Брендмауэр».
  13. Выбрать раздел «Интерфейсы», выделить нужный (указанный в пункте 3) и нажать кнопку «Изменить». Выбрать из списка «Внутренняя зона» и нажать кнопку «OK». Внимание! Данная настройка разрешает доступ всем службам к указанному интерфейсу. Если указанный интерфейс настроен как внешняя зона, то выбрать раздел «Разрешенные службы», в списке зон выбирать «Внешняя зона», в списке служб выбирать «VNC server» и нажать кнопку «Добавить».

    Нажать кнопку «Далее», проверить правильность настроек и нажать кнопку «Завершить».
  14. Повторить подключение с клиента.

Теги: 

Timloker
Аватар пользователя Timloker
Не в сети
Последнее посещение: 2 недели 6 дней назад
Регистрация: 14/03/2013 - 12:44
krfb
ragman
Аватар пользователя ragman
Не в сети
Последнее посещение: 2 года 1 день назад
Регистрация: 30/05/2013 - 10:20
Я этот способ тоже видел. Но

Я этот способ тоже видел. Но там не написано ничего о том как лечить ошибку, когда при подключении клиента получаешь сообщение, что VNC сервер не сконфигурирован для использования без пароля. А как оказалось, необходимо выполнить пункты 5-10, т.е. создать VNC-пароль для root и указать VNC серверу что авторизоваться нужно с его помощью.
А в пункте 3 способа, на который Вы ссылаетесь, вообще написано "Итог: удаленное управление текущей сессией пользователя." Т.е. для подключения мне необходимо локально зайти на сервер. Мне это не подходило - нужен был удаленный доступ к серверу без локального входа.

zayac_val
Аватар пользователя zayac_val
Не в сети
Последнее посещение: 4 года 1 месяц назад
Регистрация: 03/02/2013 - 23:15
Всяко пробовал, и так как

Всяко пробовал, и так как описано в этой статье тоже. В итоге vncserver запущен, а с клиента подключиться никак - failed to connect to server
Решил проблему таким вот скриптом(давно когда нарыл его и пользовал еще под 11,0 )


#
# x11vnc_loop:
#
# Example startup script for connecting x11vnc to an X display
# at system boot up and having it reconnect when the X server restarts.
#
# Run, in rc.local say, via, e.g.:
#
#/path/to/x11vnc_loop 1>> /var/tmp/x11vnc_loop.log 2>&1 &
#
# call with argument "once" or a number to limit the number of loops.
#.
##########################################################################
# The following needs to be customized:
x11vnc_cmd=x11vnc # or use full path (or set PATH). так и оставил
pwfile=/home/zayac/.vnc/passwd # always use a password - у меня он лежит тут
display=:0 # display of interest - можно и другой, например :1
restart_sleep=5 # pause between X server restarts. - задержка на рестарт иксов, если комп медленный, ставим больше

# modify cmdline args if desired:
#x11vnc_args="-display $display -rfbauth $pwfile -forever -nap"
x11vnc_args="-display :0 -rfbauth $pwfile -forever -nap"

# you may need to customize the "grep", etc, below in get_xauthority_file()
##########################################################################

if [ "X$1" != "X" ]; then
max=$1
shift
fi

get_xauthority_file() {
#
# We need to find the MIT-COOKIE file... this not portable at all,
# depends on OS, distro, desktop, phase of moon, etc...
#
# If the cookie file was fixed and you knew it, you could just
# return it here e.g.:
#
## echo "/var/gdm/:0.Xauth"; return
#
# or, if you knew the directory, you could look for the youngest
# file there and return it e.g.:
#
## echo `ls -t /var/lib/xdm/authdir/authfiles/* | head -1`; return

# this hack tries to grep it out of ps output...
xauth=`ls -t /var/lib/xdm/authdir/authfiles/* | head -1`
# xauth="/var/lib/xdm/authdir/authfiles/*"
# у меня этот файл лежит там, где он лежит в другом дистрибутиве смотрим так:
# ps wwwwaux | grep auth
sleep 2 # wait a bit in case X server is restarting slowly.
# done
echo $xauth
}

try=1
while [ 1 ]
do
echo "`date` $0 try number: $try"; try=`expr $try + 1`

auth=`get_xauthority_file`
if [ ! -r "$auth" ]; then
echo "`date` bad auth file: \"$auth\""
else
cmd="$x11vnc_cmd $x11vnc_args"
sleep 1
echo "`date` running: $cmd -auth $auth"
# run x11vnc:
$cmd -auth $auth
if [ "X$max" = "Xonce" ]; then
exit $?
fi
fi
if echo "$max" | grep '[0-9]' > /dev/null; then
if [ $try -gt $max ]; then
exit
fi
fi
sleep $restart_sleep
done



Положил я его сюда /etc/x11vnc_loop
Вот здесь он у меня запускается /etc/init.d/boot.local вот таким образом /etc/x11vnc_loop 1>> /var/tmp/x11vnc_loop.log 2>&1 &
/var/tmp/x11vnc_loop.log - сюда пишутся логи
В итоге после перезагрузки, еще перед тем как залогиниться, можно удаленно подключиться к машине.
Проверено на 11.0 и 12.3
Разумеется прежде всего надо установить x11vnc, и выполнить vncpasswd, как описано в статье. Единственно делать это можно под пользователем, как в моем случае. В скрипте строчку pwfile=/home/zayac/.vnc/passwd откорректируете под себя.
Ну вроде и все. Надеюсь еще кому нибудь это поможет
drbob2113
Аватар пользователя drbob2113
Не в сети
Последнее посещение: 2 года 4 месяца назад
Регистрация: 22/11/2014 - 16:34
Выполнил процесс как написало

Выполнил процесс как написало. Подключаюсь. После ввода логина-пароля сеанс автоматом закрывается. Где копать?

Sergey66
Аватар пользователя Sergey66
Не в сети
Последнее посещение: 2 года 2 месяца назад
Регистрация: 19/08/2015 - 11:25
Аналогично

Что делать.......? Хелп!!!

Sergey66