Печать
Подключаемся к серверу терминалов Thinstuff из Linux через rdesktop

Не редко компании для работы используют операционную систему Linux. И не редко возникает задача организации удаленного подключения к терминальному серверу, работающему под управлением Windows. Самая популярный клиент для организации подключения к терминальному серверу по RDP, это пакет rdesktop.

Логика работы rdesktop основывается на протоколе RDP (Remote Desktop Protocol) - проприетарном протоколе Microsoft, используемом для удаленного доступа к рабочему столу Windows. Настройка самого терминального сервера описана в других статьях на нашем сайте. В рамках это, мы рассмотрим общие параметры клиентской части, основные принципы и некоторые примеры использования.

Установка Rdesktop 

Во многих дистрибутивах пакет rdesktop уже предустановлен и от пользователя не требуется никаких действий для начала работы. Соответственно, перед началом работы необходимо сперва проверить наличие установленного пакета. Для этого, запускаем терминал (Нажмите Ctrl + Alt + T) и в появившемся окне терминала введите команду:

rdesktop

И нажмите клавишу Enter. Если после нажатия Enter, вы получили сообщение о том, что команда не найдена, то это означает, что пакет rdesktop не установлен и его нужно установить. Для дистрибутивов на Debian основе, например такие как Ubuntu, Linux Mint и т.д., команда установки rdesktop будет выглядеть следующим образом:

Для начала переключаем на права пользователя root

su root

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

apt-get install rdesktop

Для дистрибутивов типа Centos, RedHat, после перехода к правам root, вводим команду

yum install rdesktop

В некоторых дистрибутивах пакет rdesktop полностью исключен из репозитория или как в случае с ОС "Эльбрус" этот пакет является сильно устаревшим. В этом случае вам необходимо подключить дополнительный репозиторий и выполнить установку необходимого пакета.

Подключение к серверу

rdesktop -z -P -g 1280x900 -u USERNAME -p PASSWORD -k en-us -N АдресСервера

Поясним:

  • -z включает сжатие потока
  • -P кэширование
  • -g задает геометрию окна
  • -f полноэкранный режим, можно использовать вместо -g, если нужно удаленный сеанс развернуть на всю рабочую область. Выход с полноэкранного режима можно осуществить нажатием Ctrl + Alt + Enter.
  • -u имя пользователя на сервере
  • -p пароль.
  • -k задает раскладку клавиатуры. Если ее не установить, то возможны проблемы с переключением языка.
  • -N включает синхронизацию клавиши NumLock.

Стоит сразу отметить то, что задание пароля в явном виде в качестве опции для rdesktop не является безопасным, так как он может быть просмотрен другими пользователями с помощью команды ps. Поэтому, если компьютер может быть доступен другим пользователям (локальным или удаленным), эту опцию следует опускать - пароль можно будет ввести уже после установления сессии.

Обмен файлами между Windows и Linux в рамках сеанса rdp

Остро встает вопрос о возможности обмена файлами в рамках сессии между локальным и удаленным компьютером, так как перетаскивание не поддерживается. Первое, что можно сделать, это при помощи опции "-r disk:<sharename>=<path>" подключить любую локальную папку как диск Windows, который можно будет увидеть в "Мой компьютер". Например команда

rdesktop -r disk:share=/home/documents -z -P -g 1280x900 -u USERNAME -p PASSWORD -N -k en-us АдресСервера

кроме всего прочего подключит папку /home/documents в качестве диска "share" в "Мой компьютер" на стороне Windows. Вы сможете читать и записывать файлы. Однако, следует помнить, что владельцем подключаемой папки должен быть тот пользователь, от лица которого запускается rdp client. Иначе (запуская rdesktop от лица, например, root) вы не сможете потом получить доступ к записанным файлам, пока не установите правильного владельца. Если это произошло, воспользуйтесь командой chown для смены владельца и группы:

chown -R /home/documents USERNAME:USERGROUP

Второй доступный способ, это при помощи протоколов SMB или NFS сделать общую сетевую папку. Читайте документацию по созданию таких хранилищ и их подключению к системам Windows и Linux

Создание ярлыка

Чтобы каждый раз не открывать консоль и не вводить длительные последовательности команд и опций, можно сделать кнопку запуска, два раза кликнув по которой можно запустить требуемый сеанс.

Для этого нужно поместить команду целиком в текстовый файл в нужном месте (на Рабочий Стол, или любую другую папку), добавить одну строчку до нее и сделать файл исполняемым. Так, исползуя пример из первой части делаем такой текстовый файл такого содержания (например rdpserver.sh):

#!/bin/bash
rdesktop -z -P -f -N -k en-us -u USERNAME -p PASSWORD SERVER_IP

И делаем устанавливаем права запуска для созданного файла:

chmod +x rdpsercer.sh