Терминальные решения на Linux - Linux в качестве терминального клиента и десктопной машины

Терминальные решения на Linux - Linux в качестве терминального клиента и десктопной машины

Сегодня, в продолжении цикла статей об альтернативном бесплатном программном обеспечении, хотим осветить довольно популярный вопрос терминальных решений на базе Linux. Данное решение абсолютно ничем не уступает терминальным клиентам, которые идут в комплекте с операционными системами Microsoft Windows. 

В качестве примера мы будем использовать операционную систему Xubuntu 12.04, терминальный клиент rdesktop и Microsoft Windows Server 2003.

Терминальный RDP клиент rdesktop для установки предоставляется в различных вариациях, в том числе и в исходных кодах. Скачать вы его можете из репозиторием вашей системы либо с сайта разработчика.

Статья ориентирована на новичков в среде Linux. В статье будет присутствовать излишняя разжеванность для беспроблемной инсталляции RDP клиента rdesktop обычному пользователю.

Установка клиента rdesktop на Ubuntu, Linux

Установка клиента rdesktop на Ubuntu, Linux

Вопрос установки операционной системы мы рассматривать не будем, данной информации достаточно на просторах интернета и мы полагаем, что вы обладаете навыком инсталляции вашей версии Linux на компьютер.

Перейдем непосредственно к установке нашего клиента на десктопный компьютер. Мы будем производить установку RDP клиента непосредственно из стандартных репозиториев ubuntu. Данный метод позволит быстро и без лишних хлопот установить наш клиент.

Вводим в терминале команду с правами суперпользователя:

sudo apt-get install rdesktop

 Далее строится ветка зависимостей пакетов и происходит установка недостающих пакетов и самого клиента rdesktop. Примерно так:

Чтение списков пакетов… Готово
Построение дерева зависимостей 
Чтение информации о состоянии… Готово
Предлагаемые пакеты:
pcscd
НОВЫЕ пакеты, которые будут установлены:
rdesktop
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 18 пакетов не обновлено.
Необходимо скачать 139 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 427 kB.
Получено:1 http://ru.archive.ubuntu.com/ubuntu/ trusty/universe rdesktop amd64 1.7.1-1ubuntu2 [139 kB]
Получено 139 kБ за 0с (570 kБ/c) 
Выбор ранее не выбранного пакета rdesktop.
(Чтение базы данных … на данный момент установлено 216647 файлов и каталогов.)
Preparing to unpack …/rdesktop_1.7.1-1ubuntu2_amd64.deb ...
Unpacking rdesktop (1.7.1-1ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Настраивается пакет rdesktop (1.7.1-1ubuntu2) …

 Собственно на данном этапе инсталляцию RDP клиента rdesktop можно считать завершенной. Поздравлямба =)

Настройка терминального клиента rdesktop

В принципе, после установки терминальный клиент rdesktop полностью готов к работе, но встречаются проблемы с кодировкой клавиш и комбинаций клавиш клавиатуры в терминальном доступа. Данная проблема легко решается при помощи ручной корректировки кодов символов в файлах конфигурации терминального RDP клиента rdesktop.

Интересующие нас файлы находятся в директории:

/usr/share/rdesktop/keymaps/

 Для конфигурации нам потребуются 2 файла ru и en-us. Для конфигурирования данных файлов достаточно открыть их в любом текстовом файле с правами суперпользователя:

sudo gedit /usr/share/rdesktop/keymaps/ru
sudo gedit /usr/share/rdesktop/keymaps/en-us

 И заменить все содержимое файлов на следующее:

# generated from XKB map ru
include common
map 0x419
grave 0x29
asciitilde 0x29 shift
asciicircum 0x07 shift
backslash 0x2b
bar 0x2b shift
apostrophe 0x28
greater 0x34 shift
less 0x33 shift

 По результатам данных манипуляций исчезнут проблемы с вводом символов на русской и английской раскладке в терминальном доступе.

Конфигурация и подключение терминального клиента rdesktop к серверу

И вот мы подошли к самому интересному и завершающему этапу нашей сегодняшней темы статьи - конфигурация и подключение терминального клиента RDP rdesktop к терминальному серверу Windows.

Для начала мы приведем список всевозможных конфигураций и ключей для терминального клиента rdesktop.

Применение: rdesktop [опция] сервер[:порт]
 
-u: имя пользователя терминального сервера
-d: доменная зона сети
-s: запуск оболочки для пользователя — запускается определенное приложение вместо рабочего стола(explorer)
-c: первоначальный рабочий каталог для пользователя. Часто используется в комбинации с
-s для создания фиксированного входа в окружающую среду.
-p: пароль пользователя терминального клиента
-n: имя хоста клиента
-k: раскладка клавиатуры терминального сервера (EN-US, DE, SV и т.д.)
-g: разрешения окна терминального клиента rdesktop(WxH)
-f: полноэкранный режим терминального клиента rdesktop. Переключение между режимами по сочетанию клавиш Ctrl + Alt + Enter
-b: битность обновления растрового изображения rdesktop
-L: локальная кодировка
-A: Включите режим SeamlessRDP
-B: использование BackingStore от X-сервера
-e: отключить шифрование
-E: Отключение шифрования от клиента к серверу
-m: не отправлять на терминальный сервер события передвижения мыши
-C: использование собственной цветовой схемы
-D: спрятать декорации окон
-K: не переопределять комбинации клавиш оконного менеджера. По умолчанию rdesktop пытается определить все имеющиеся комбинации клавиш.
-S: включить режим одного приложения. Эта опция может быть использована при запуске одного приложения с раскрытием на весь экран (используя -s). Когда нажимается кнопка «свернуть», сворачивается окно удаленного рабочего стола, а не приложения, в нем работающего. Кнопки «Развернуть/Восстановить» неактивны. Для корректной работы, Вы должны указать правильный размер кнопок в пикселях. Слово «standart» — соответствует 18 пикселям.
-T: установить заголовок окна терминального клиента
-N: позволить numlock синхронизации
-X: вставлять в другое окно с заданным идентификатором.
-a: подключение глубина цвета
-z: включить сжатие RDP
-x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)
-P: постоянное кеширование точечных изображений терминального сервера
-r: включить указанное устройство редирект (этот флаг может повторяться)
-0: Присоединиться к консоли
-4: Использование RDP версии 4
-5: Использование RDP версии 5 (по умолчанию)
-y: использование raw клавиатуры

Небольшая ремарка к параметру полноэкранной инициализации терминального клиента - для возврата в оконный режим необходимо нажать сочетание клавиш Ctrl+Alt+Enter

Подытожим с возможными конфигурациями, ключами и параметрами RDP терминального клиента rdesktop и перейдем, непосредственно, к примерам запуска терминальной сессии.

Минимальным набором параметров при инициализации терминальной сессии средствами терминального клиента rdesktop следует считать:

rdesktop ip_rdp_server

Присутствует всего один параметр - ip_rdp_server. Параметр ip терминального сервера может иметь 2 вида: с явным указанием порта подключения к терминальному серверу(адрес:порт) и портом по умолчания(адрес).

Пример инициализации терминальной сессии по нестандартному порту терминального сервера:

rdesktop ip_rdp_server:port

Приведем пример базовой конфигурации запуска терминального клиента rdesktop:

rdesktop ip_rdp_server -k en-us -f -u user1

Т.е. по факту инициализации RDP клиента rdesktop мы получаем терминальную сессию, терминальное окно которого развернута на весь экран, нормальной работой кодировок русского и английского языка и с базовым пользователем user1. Терминальная сессия имеет минимум параметров инициализации: ip терминального сервера, раскладка клавиатуры для терминальной сессии, параметр открытия терминального окна на весь экрана и пользователя для авторизации. Для переходов между режимами и перехода в оконный режим используйте сочетания клавиш Ctrl + Alt + Enter.

Пример инициализации терминальной сессии без авторизации(параметры авторизации передаются в момент инициализации и прописаны в команде инициализации сессии):

rdesktop ip_rdp_server -k en-us -f -u user1 -p 123321

Мы думаем комментарии к данной инициализации излишни, т.к. добавился всего один параметр -p - пароль пользователя при инициализации.

Пример проброса принтера в терминальную сессию rdesktop:

rdesktop ip_rdp_server -k en-us -f -u user1 -r printer:Hewlett-Packard-HP-LaserJet-P2055dn

Параметр проброса принтера в терминальную сессию может быть представлен в двух видах: с неявным указанием драйвера принтера( -r printer:Имя_принетра_в_локальной_системе) и явным указанием драйвера принтера( -r printer:Имя_принетра_в_локальной_системе = "Дравер_для_терминально_сервера"). В большинстве случаев терминальный сервер корректно определяем необходимый драйвер для принтера и не требует явного указания драйвера в терминальной сессии на сервере.

Пример проброса COM портов в терминальную сессию rdesktop:

rdesktop ip_rdp_server -k en-us -f -u user1 -r comport:COM1=/dev/ttyS0,COM2=...

Мы думаем данный пример не нуждается в излишних комментариях. В примере используется явное указание устройств подключенных по COM портам. Параметр проброса COM портов на сервер имеет вид - имя_инициализации_порта_на_сервере = путь_в_локальной_системе_к_COM_порту.

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

rdesktop ip_rdp_server -k en-us -f -u user1 -r disk:name_disk=/home/user/

Из данного примера мы видим параметр монтирования локальных файловых ресурсов средствами терминальной сессии. Параметр имеет следующую структуру - имя_устройства_при_инициализации_на_сервере = имя_директории_на_локальной_машине

Собственно на данном этапе мы и подытожим с примерами инициализации терминальных сессий средствами терминального клиента rdesktop и добавим к вышесказанному о возможности проброса таких устройств как:

  • Клавиатур.
  • Аудио устройств.
  • LPT
  • Scard - ключей цифровой подписи eToken и прочее.

Вот и подытожили мы нашу сегодняшнюю статьи, которая получилась довольно обширная и внятная для новичка в системе linux. 

По итогам прочтения данной статьи у вас должно возникнуть устойчивое, четкое представление о возможностях терминального клиента rdesktop на ОС linux, теоретические и практические знания по процедуре установки и инициализации терминальных сессий средствами терминального клиента rdesktop.