- RDP клинет Linux или как подключиться к Windows из Linux
- Rdesktop установка
- Подключение к серверу
- Обмен файлами между Windows и Linux в рамках сеанса rdp
- Создание простой кнопки запуска
- Rdesktop
- Installation
- Usage
- Tips and tricks
- Automatic scaling of geometry
- Remote desktop using NetBIOS names instead of using IP address
- Supplying missing cursors
- Troubleshooting
- Failed to initialize NLA
- See also
RDP клинет Linux или как подключиться к Windows из Linux
Если в вашей локальной сети присутствуют Windows сервера или клиентские машины с возможностью подключения к удаленному рабочему столу, то логично было бы иметь такую поддержку со стороны Linux машин. Такую возможность нам обеспечивает проект rdesktop и их одноименный rdp клиент.
Логика работы rdesktop основывается на протоколе RDP (Remote Desktop Protocol) — проприетарном протоколе Microsoft, используемом для удаленного доступа к рабочему столу Windows. Основная настройка в этом случае производится на стороне сервера — здесь же мы рассмотрим работу клиентской части, основные принципы, параметры и примеры использования.
Rdesktop установка
Итак приступим. rdesktop — консольная утилита, так что смело открывайте терминал и вводите
Если вы получили сообщение о том, что команда не найдена — её нужно установить. Для Debian-based дистрибутивов (Ubuntu, Linux Mint) команда установки rdesktop будет выглядеть так:
apt-get install rdesktop #Команду стоит вводить от лица root
Подключение к серверу
rdesktop -z -P -g 1280×900 -u USERNAME -p PASSWORD SERVER_IP
- -z включает сжатие потока
- -P кэширование
- -g задает геометрию окна
- -u имя пользователя на сервере
- -p пароль.
Следует оговориться — задание пароля в явном виде в качестве опции для rdesktop не является безопасным, так как он может быть просмотрен другими пользователями с помощью команды ps. Поэтому, если компьютер может быть доступен другим пользователям (локальным или удаленным), эту опцию следует опускать — пароль можно будет ввести уже после установления сессии.
Опцию «-g» можно заменить опцией «-f». В этом случае окно rdesktop будет открыто на весь экран. Выход в этом случае можно будет инициировать нажатием клавиш Ctrl-Alt-Enter.
Обмен файлами между Windows и Linux в рамках сеанса rdp
Остро встает вопрос о возможности обмена файлами в рамках сессии между локальным и удаленным компьютером, так как перетаскивание не поддерживается. Первое, что можно сделать, это при помощи опции «-r disk:=» подключить любую локальную папку как диск Windows, который можно будет увидеть в «Мой компьютер». Например команда
rdesktop -r disk:share=/home/documents -z -P -g 1280×900 -u USERNAME -p PASSWORD SERVER_IP
кроме всего прочего подключит папку /home/documents в качестве диска «share» в «Мой компьютер» на стороне Windows. Вы сможете читать и записывать файлы. Однако, следует помнить, что владельцем подключаемой папки должен быть тот пользователь, от лица которого запускается rdp client. Иначе (запуская rdesktop от лица, например, root) вы не сможете потом получить доступ к записанным файлам, пока не установите правильного владельца. Если это произошло, воспользуйтесь командой chown для смены владельца и группы:
chown -R /home/documents USERNAME:USERGROUP
Второй доступный способ, это при помощи протоколов SMB или NFS сделать общую сетевую папку. Читайте документацию по созданию таких хранилищ и их подключению к системам Windows и Linux
Создание простой кнопки запуска
Чтобы каждый раз не открывать консоль и не вводить длительные последовательности команд и опций, можно сделать кнопку запуска, два раза кликнув по которой можно запустить требуемый сеанс.
Для этого нужно поместить команду целиком в текстовый файл в нужном месте (на Рабочий Стол, или любую другую папку), добавить одну строчку до нее и сделать файл исполняемым. Так, исползуя пример из первой части делаем такой текстовый файл такого содержания:
#!/bin/bash
rdesktop -z -P -g 1280×900 -u USERNAME -p PASSWORD SERVER_IP
И делаем его исполняемым (из консоли):
chmod +x PATH_TO_MY_TEXT_FILE
Rdesktop
Note: The upstream rdesktop project is looking for a new maintainer. In the meantime, it is advised to use the other branch of the project called freerdp , actively maintained. See here for an explanation on the history of both projects and see how they are tied together.
rdesktop is a free, open source client for Microsoft’s proprietary RDP protocol released under the GNU General Public License. Use rdesktop to connect to Windows RDP server to remotely administrate the Windows box.
As of July 2008, rdesktop implements a large subset of the RDP 5 protocol, including:
- Bitmap caching
- File system, audio, serial port and printer port redirection
- Mappings for most international keyboards
- Stream compression and encryption
- Automatic authentication
- Smartcard support
- RemoteApp like support called «seamless» mode via SeamlessRDP
Support for the additional features available in RDP 5.1 and RDP 6 (including multi-head display spanning and window composition) also have not yet been implemented.
Installation
Usage
For a complete listing of options see rdesktop(1) . Here is a typical line:
$ rdesktop -g 1440x900 -P -z -x l -r sound:off -u windowsuser 98.180.102.33:3389
Reading from left to right:
-g 1440×900 | Sets the resolution of the display to 1440×900 |
-P | Enables bitmap caching/speeds up xfers. |
-z | Enables RDP datastream compression |
-x l | Uses the «lan» quality experience level, see rdesktop(1) § x |
-r sound:off | Redirects sound generated on the server to null |
-u windowsuser | This defines the username to use when logging into the Windows box |
98.180.102.33:3389 | This is the IP address and port number of the target machine |
Tips and tricks
Automatic scaling of geometry
In order to automatically scale the geometry to fit the screen, one can use the -g command line option. Either by using percentage:
$ rdesktop -g 100% -P -z 98.180.102.33:3389
-g $(xrandr -q | awk '/Screen 0/ ' | sed 's/,//g')
Remote desktop using NetBIOS names instead of using IP address
If you do not know the IP address of a Windows computer in a network, you have to enable wins support. To do so, you have to install samba. To enable wins in samba add the following line:
Then you have to install winbind, then edit the /etc/nsswitch.conf and add the «wins» to the list of hosts.
Restart smb and nmb services and test your success by pinging a Windows NetBIOS host.
Supplying missing cursors
Troubleshooting
Failed to initialize NLA
When trying to remote desktop into a Windows 10 or Windows 11 host, you might get this error:
Failed to initialize NLA, do you have correct Kerberos TGT initialized ? Failed to connect, CredSSP required by server (check if server has disabled old TLS versions, if yes use -V option)
If you own or have admin access to the host, you can work around this issue by allowing clients to connect without NLA. Search rdp disable nla for instructions. Note that this might introduce security issues on a public-facing host, so use this with caution.
See also
- rdesktop official homepage
- freerdp a rdesktop fork that supports RDP 7.1 features including network level authentication (NLA). See also [1].