Не происходит блокировки экрана, по истечению заданного в настройках времени блокировки, при нахождении курсора мыши на окне rdp сеанса. При нахождении курсора мыши вне экрана с rdp сеансом блокировка экрана успешно выполняется. Данное поведение не является корректным с точки зрения соблюдения безопасности. В виду того, что в KRDC и Remmina, которые также используют freerdp, данное поведение не воспроизводится, есть надежда, что MyConnector также может быть исправлен. Версия: myconnector-2.4.4-alt2 (P10) myconnector-2.5.1-alt1 (Sisyphus) Системы: Клиент: ALT Workstation K 10.2 или ALT Workstation K Sisyphus Сервер: Windows Server 2012 или ALT Server 10.1 Клиент работает в сессии: X11 Шаги воспроизведения: 1. При необходимости установить/активировать rdp сервер. Если rdp сервер находится на ALT Linux Server, установить xrdp: # apt-get install xrdp # systemctl enable --now xrdp xrdp-sesman # gpasswd -a user tsusers Если rdp сервер находится на Windows Server: Активировать галочку "Разрешить удаленные подключения к этому компьютеру" 2. Установить MyConnector на клиенте: # apt-get install myconnector 3. На клиенте выставить период блокировки экрана: Параметры системы > Управление питанием > Энергосбережение > Приостановка сеанса > Заблокировать экран > через 1 мин 4. Открыть MyConnector 5. Убедиться, что выбрана установка "Удалённый рабочий стол Windows (freerdp)" 6. Настроить параметры подключения и подключиться к серверу: - нажать кнопку "Дополнительные параметры" - ввести IP адрес сервера - ввести имя пользователя и пароль - выставить "Размер окна" -> "Вручную" -> "800x600" - нажать кнопку "Подключение" 7. Оставить курсор мыши без движения на окне с сеансом rdp и подождать 1 минуту Ожидаемый результат: По прошествии 1 минуты бездействия ПК, происходит блокировка экрана. Реальный результат: Экран не блокируется по прошествии 1 минуты бездействия ПК при нахождении курсора мыши на окне сеанса rdp. Дополнительная информация: 1. Если курсор мыши находится вне экрана с rdp сеансом, то блокировка экрана успешно выполняется. 2. Поведение, описанное выше было проверено с несколькими rdp клиентами: - MyConnector (использует freerdp) - воспроизводится - freerdp - воспроизводится - Remmina (использует freerdp) - НЕ воспроизводится - KRDC (использует freerdp) - НЕ воспроизводится 3. При использовании сессии Wayland вышеописанное поведение не воспроизводится. Блокировка экрана производится корректно, согласно заданного в настройках времени блокировки, независимо от места нахождения курсора мыши.
На p9 на версии $ rpm -q xfreerdp xfreerdp-2.2.0-alt1.x86_64 проблемы нет как в полноэкранном режиме, так и в оконном режиме. От MyConnector поведение никак не зависит, так как он передает в xfreerdp параметры запуска через CLI. Remmina скорее всего использует API freerdp, поэтому там проблемы нет.
(Ответ для Evgeniy Korneechev на комментарий #1) > От MyConnector поведение никак не зависит, так как он передает в xfreerdp > параметры запуска через CLI. Remmina скорее всего использует API freerdp, > поэтому там проблемы нет. Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp, xfreerdp висит в процессах), и там тоже нет проблемы.
(Ответ для Шевченко Денис на комментарий #2) > Если правильно понял, KRDC запускает xfreerdp (при запуске сеанса rdp, > xfreerdp висит в процессах), и там тоже нет проблемы. С какими параметрами запускается xfreerdp?
Отвечу сам: /usr/bin/xfreerdp -decorations /w:1920 /h:988 /kbd:0x00000409 /u:administrator /parent-window:65011831 /bpp:24 /audio-mode:0 /sound:sys:alsa /drive:media,/media /network:lan /rfx /cert-ignore +clipboard /port:3389 /v:ts вот как раз /parent-window:65011831 и не дает уйти в "блокировку", так как фокус постоянно на окне родительском. Если запускать голый xfreerdp - фокус "внутри" окна, а не "на окне" - если мы держим курсор на верхней панели окна (xfreerdp в оконном режиме) - то блокировка работает. Если чуть ниже в RDP - уже не сработает. Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф приедет скоро).
(Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Спасибо за разъяснение причины. Попробовал библиотеки и бинарник из ночной сборки пакета для fedora. Версия xfreerdp: 3.0.0-dev6 (dd56308bd) Брал тут: https://pub.freerdp.com/repositories/rpm/fedora/fedora-39/freerdp-nightly/x86_64/ Проблема, к сожалению не ушла.
(Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Пробовали xfreerdp 3.0.0-rc0?
(Ответ для Evgeniy Korneechev на комментарий #4) > Конечно можно доработать MyConnector, чтобы он создавал окно, а в нем > запускал xfreerdp, но для начала бы я попробовал на версии xfreerdp > 3.0.0-rc0, вдруг что там исправили (попробую сам, или возможно в сизиф > приедет скоро). Имеются проблемы со сборкой xfreerdp 3.0.0 в сизифе. В виду неготовности ряда апстримов к сборке, задание отложено. Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)?
(Ответ для Шевченко Денис на комментарий #7) > Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в > котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)? Можно, но сроков пока не обозначу.
(Ответ для Evgeniy Korneechev на комментарий #8) > (Ответ для Шевченко Денис на комментарий #7) > > Можно ли надеяться на реализацию вышеописанной идеи с созданием окна, в > > котором запускается xfreerdp с текущей версией xfreerdp(2.11.2)? > > Можно, но сроков пока не обозначу. Добрый день. Подскажите, пожалуйста, исправляется ли ошибка?
На Linux Mint 21 не вопроизводится: $ mate-screensaver --version mate-screensaver 1.26.1 $ xfreerdp --version This is FreeRDP version 2.6.1 (2.6.1) Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке.
(Ответ для Evgeniy Korneechev на комментарий #10) > На Linux Mint 21 не вопроизводится: > $ mate-screensaver --version > mate-screensaver 1.26.1 > $ xfreerdp --version > This is FreeRDP version 2.6.1 (2.6.1) > > Аналогичная версия mate-screensaver в c10f1 - проверьте на этой ветке. Речь шла о проблеме в KDE (ALT Workstation K), а не Mate. И только в X11 (в Wayland не воспроизводится проблема).
Видимо из-за #48647 решил, что в МАТЕ тоже... Но мне кажется вопросы к скринсейверу все таки. Реализовать работу xfreerdp в окне - пока нет времени.
Created attachment 15549 [details] Тест запуска xfreerdp в окне В окне запустить таким образом удается (это просто пример реализации - можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). Однако у меня не работает клавиатура в RDP-сеансе при этом...
(Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Проверил тестовый скрипт запуска xfreerdp в окне, в среде KDE (ALT Workstation K Sisyphus). Блокировка экрана клиентской машины теперь срабатывает независимо от нахождения курсора мыши (на окне RDP сеанса или вне его). Клавиатура в RDP-сеансе тоже не работает.
(Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Добрый день. Есть ли новости по исправлению ошибки?
(Ответ для Шевченко Денис на комментарий #15) > Есть ли новости по исправлению ошибки? У меня нет идей.
(Ответ для Evgeniy Korneechev на комментарий #13) > Создано вложение 15549 [details] [подробности] > Тест запуска xfreerdp в окне > > В окне запустить таким образом удается (это просто пример реализации - > можете проверить в среде KDE, поправив строку запуска xfreerdp в скрипте). > Однако у меня не работает клавиатура в RDP-сеансе при этом... Эмпирическим путём было выяснено, что параметр '/f' в строке запуска скрипта xfreerdp разблокирует клавиатуру. Так же найдена возможная причина такого поведения: ввод с клавиатуры идёт на создаваемое скриптом gtk окно, а не на приложение xfreerdp в нём. Возможно, эта информация чем-то поможет разработчику.
Информация по багу: ---- ksmserver не может заблокировать экран: 1. он не "забывает" его заблокировать 2. попытка заблокировать экран оканчивается неудачей ---- причины: захват клавиатуры в xfreerdp c точки зрения kde plasma - такое поведение вполне логичное, если клавиатура остутствует и заблокировать экран,будет невозможно его разблокировать без клавиатуры remmina: захват клавитуры по умолчанию выключен, если включить, баг воспроизведется wayland: захват клавиатуры не удается, как следствие - баг не воспроизводится ----- захват клавиатуры позволяет xfreerdp однозначно определится с раскладкой и типом клавиатуры, но не является обязательным ----- решение: для xfreerdp версии 2.x запускать xfreerdp /kbd:0x00000419 /kbd-fn-key:12 -grab-keyboard /f то-есть запускать без захвата клавиатуры с явным указанием ее типа, по необходимости можно играться с параметрами (419 это русская клавиатура) ключевым моментом является -grab-keyboard для xfreerdp версии 3.x есть возможность отключить захват клавиатуры нажатием правого ctrl (как в vmbox)
(Ответ для proskurinov@basealt.ru на комментарий #18) > для xfreerdp версии 2.x запускать > xfreerdp /kbd:0x00000419 /kbd-fn-key:12 -grab-keyboard /f > то-есть запускать без захвата клавиатуры с явным указанием ее типа, > по необходимости можно играться с параметрами (419 это русская клавиатура) > ключевым моментом является -grab-keyboard Спасибо. Возможно добавлю чекбокс для "захвата клавиатуры", пока же можно указывать данные параметры в MyConnector в поле "Параметры пользователя"
В /etc/xrdp/sesman.ini (xrdp сервер): KillDisconnected=false IdleTimeLimit=60 Так логичнее. У виндового сервера есть аналогичные настройки в реестре.
Добавлю по поводу ключа "-grab-keyboard". При его использовании горячие клавиши (например, "alt+tab") не срабатывают в сессии RDP, что делает работу не очень комфортной.