Удалённый терминальный доступ

Создан: 20.02.2008
Модиф: 05.08.2009
Аркадий Иванов

 

    Совершенно стандартная задача для сисадмина - это обеспечить самому себе удалённый доступ к компьютерам сети. Чем более быстрый и удобный доступ будет, тем комфортнее будет жизнь сисадмина. Зачастую надо сделать разделяемый доступ, т.е. смотреть, что вытворяет юзер, или наоборот показать юзеру, как надо расправляться с проблемой. Некоторые пакеты позволяют сохранить рабочую сессию на сервере (VNC, FreeNX). Штука удобная, но если юзер оставляет включенные скринсейверы, программы, которые блокируют доступ других пользователей к базе (например 1C), этот режим может оказаться весьма обременительным для администрирования.

 

FreeNX

 

Для Linux разработчик "NOMACHINE" сделал программы бесплатными. Рекомендую именно его, поскольку у альтернативной свободной разработки для

сервера есть изрядные глюки.

 

===== Серверная часть =====

1. Скачать с http://www.nomachine.com свободные пакеты:

server,node,client
 

Вы можете скачать как RPM-вариант, так и TAR-вариант пакетов.
 

2. Остановить nscd:

service nscd stop
 

3. Установить пакеты и связанные с ними, если потребуется.
 

4. Если в sshd есть какая-то защита на уровне разрешённых имён пользователей, то добавить пользователя nx в директиву /etc/openssh/sshd_config

в список разрешённых пользователей. Это будет выглядеть примерно так:

AllowUsers masha vasya nx
 

После добавления перезапустить sshd:
service sshd restart
 

5. Запустить от root-a NX-сервер:
cd /usr/NX/bin

./nxserver --start

 

6. Всё, если глюков не словили, то сервер запущен и ждёт коннектов.

 

===== Клиентская часть =====

1. С  http://www.nomachine.com скачивается клиент для Linux, Windows, ...

2. Пакет устанавливается из RPM или из tar-архива.

3. В Linux программа-клиент будет находиться в /usr/NX/bin/nxclient.

4. Вот её то и надо запустить. Дальше в диалоге укажете, куда подсоединяться и в каком режиме.
   У себя я использую KDE-сессии.

 

После входа в систему на сервере необходимо обеспечить русскую раскладку клавиатуры:

xmodmap /usr/share/xmodmap/xmodmap.ru

setxkbmap -rules xorg -model pc105 -layout "us,ru" -variant ",winkeys" -option "grp:ctrl_shift_toggle,grp_led:scroll"

 

Эти строки я обычно вписываю в /usr/bin/startkde на сервере, чтобы для всех юзеров проблемы с раскладкой не существовало.
Примечание: файл xmodmap.ru живёт в пакете gnome-applets-gswitchit.

 

НЕДОСТАТКИ:

1.nxclient не позволяет открыть несколько сессий на один и тот же хост. Приходится отсоединяться от сессии и подключаться к другой.
Поиски в документации и в Интернете кроме аналогичных жалоб ничего не дали. :-(
2. При восстановлении сессии переключение раскладок не делается (поскольку kde не стартует заново).

ГЛЮКИ и ТАБЛЕТКИ

1.Если вы пытаетесь открыть несколько сессий на разные сервера, можете попасться на сообщение типа TCP 11000 порт уже занят.
Лечится проблема просто - на всех серверах, к которым вы собрались коннектиться, следует указать разные базовые порты для дисплеев.
В /etc/nxserver/node.conf раскомментируйте переменную DISPLAY_BASE и назначьте на разных серверах разные значения этой переменной,
например, 1000, 2000, 3000,...

 

 

RDESKTOP

 

Эта программа позволяет приконнектиться к рабочему столу Windows-серверов и Windows XP по протоколу RDP (Remote Desktop Protocol).  В  Windows XP предварительно надо открыть свойства "Мой компьютер", разрешить галочкой удалённое управление, добавить пользователя, которому разрешено удалённое управление, назначить ему пароль.

Простейшее подключение к Windows:

rdesktop -y hostname

Ключ -y сразу облегчит вам работу с клавиатурой. :)

В последних версиях xorg изменился драйвер клавиатуры, используемый по умолчанию.

Этот "evdev" не дружит с rdesktop.

Можно отказаться от него, создав в xorg.conf секцию для стандартного драйвера, и указав в секции ServerLayout:

Option  "AutoAddDevices" "false"

 

Второй вариант - рецепт от Михаила Кангина:

 

Можно создать файл /usr/share/rdesktop/keymaps/en-us.fixed
со следующим содержимым:
---------
include common
map 0x409
asciicircum 0x07 shift
apostrophe 0x28
grave 0x29
asciitilde 0x29 shift
bar 0x2b shift
less 0x33 shift
greater 0x34 shift
-----------------------
и запускать rdesktop с параметром -k en-us.fixed

При этом корректно работает ввод со всех клавиш с любым сочетанием
раскладок на клиенте и сервере (en-en, ru-ru, en-ru, ru-en).