Подключение RDP
Подключение RDP прекращено из-за ошибки шифрования данных
Если во время работы с удаленным рабочим столом (в том числе - на сервере терминалов или RemoteApp) пользователей выкидывает с ошибкой "Этот сеанс будет прекращен из-за ошибки шифрования данных." или "Because of an error in data encryption, this session will end." - очевидно, нарушение целостности шифрования.
Нарушение это, как правило, происходит из-за проблем в сети. Проблемы могут быть как на стороне клиента (если выкидывает конкретного человека), так и на стороне сервера или маршрутизаторов / коммутаторов (если выкидывает периодически то одного пользователя, то другого).
Несколько решений данной проблемы:
1) Редактируем реестр клиентского компьютера (regedit).
Идем по адресу:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TermService\Parameters
и удаляем там ключи "Certificate", "X509 Certificate", "X509 Certificate ID". После чего перезагружаем компьютер.
2) В свойствах сетевой карты на клиенте выставляем значение "Large Send Offload" или "Offload TCP Large Send" в "выключено".
Заходим в "Сетевые соединения", в свойства сетевого соединения, "Дополнительно" и перемещаемся на вкладку дополнительных параметров. Т.е. нам надо попасть в свойства сетевой карты, через которую происходит связь с сервером терминалов.
Если в свойствах есть параметр, который звучит как "Offload TCP Large Send" или "Large Send Offload" или как-то так, и он установлен в некое число - выставляем этот параметр в "Выключено" или "Disabled".
3) В свойствах сетевой карты на клиенте выставляем значение "Offload checksum" в "Выключено" или "Disabled" (если такое свойство есть).
4) Проверьте, что сетевое соединение до сервера терминалов устойчиво и не дает потерь пакетов на пакетах размером с MTU (например, размером 1500 байт). Из-за сколь-нибудь значимого количества потерь возможны косяки с шифрованием RDP.
5) Как крайний случай - попробывать поменять сетевую карту. Соответственно, у клиента или на сервере - в зависимости - только ли у одного клиента такая байда случается или у нескольких.
Проблемы подключения xFreeRDP к Windows
После очередного апдейта винды linux`овый rdp-клиент freerdp перестал подключаться remote desktop.
Это происходит из-за включенной опции NLA (network level authentication) на стороне windows.
При попытке подключения вылезает ошибка:
$ xfreerdp /v:192.168.0.100:3389 /f /u:userlogin /p:userpassword +clipboard [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_PASSWORD_CERTAINLY_EXPIRED [0x0002000F] [ERROR][com.freerdp.core.transport] - BIO_read returned an error: error:14094438:SSL routines:ssl3_read_bytes:tlsv1 alert internal error [ERROR][com.freerdp.client.x11] - Freerdp connect error exit status 1
- Для решения проблемы необходимо на стороне RDP — сервера (Windows) отключить NLA. Это можно сделать двумя способами:
- Способ 1
В разделе Control panel — System and security — System — Allow remote access выключить опцию «Allow connections only from computers running Remote Desktop with NLA (recommended)».
- Способ 2
Открыть Group Policy Object Editor (gpedit.msc в командной строке), перейти в раздел Computer Configuration — Administrative Templates — Windows Components — Remote Desktop Services — Remote Desktop Session Host — Security и выставить значение Disabled параметру «Require user authentication for remote connections by using NLA».
- После этого можно подключаться заново, указав параметр /sec:tls
$ xfreerdp /sec:tls /v:192.168.0.100:3389 /f /u:userlogin /p:userpassword +clipboard