Подробный гайд: Astra Linux Fly + xrdp — отключается клавиатура
Проблема с «отключением» или неработоспособностью клавиатуры при подключении через xrdp в Astra Linux с окружением рабочего стола Fly обычно вызвана тремя факторами:
- Рассинхронизация раскладки между xrdp-клиентом и X-сессией.
- Отсутствие прав доступа к устройствам ввода (
/dev/input/*) для сессии xrdp. - Конфликт обработчиков ввода Fly DE с Xorg-бэкендом xrdp.
Ниже приведён пошаговый гайд по диагностике и устранению проблемы. Все пути и команды актуальны для Astra Linux CE/SE 1.7–1.8 (xrdp >= 0.9.19).
1. Предварительная диагностика
Перед внесением изменений проверьте:
# Версия ОС и xrdp
cat /etc/astra_version
xrdp -v
# Запущены ли службы
systemctl status xrdp xrdp-sesman
# Текущий бэкенд (должен быть Xorg)
grep -A5 '^\[Xorg\]' /etc/xrdp/xrdp.ini
Если в логах /var/log/xrdp-sesman.log или /var/log/xrdp.log есть строки Failed to initialize keyboard, Permission denied on /dev/input/... или No matching keymap, переходите к шагам ниже.
2. Настройка раскладки xrdp
xrdp не всегда корректно наследует системную раскладку. Явно укажите её в конфигурации:
2.1. /etc/xrdp/xrdp_keyboard.ini
Откройте файл и добавьте/отредактируйте секцию [default]:
[default]
keyboard_layout=us
keyboard_options=
Если работаете преимущественно на русском, можно указать keyboard_layout=ru. Но надёжнее оставить us и переключать раскладку внутри сессии.
2.2. /etc/xrdp/xrdp.ini
Убедитесь, что секция Xorg выглядит так:
[Xorg]
name=Xorg
lib=libxup.so
username=
password=
ip=127.0.0.1
port=-1
code=20
Перезапустите сервисы:
sudo systemctl restart xrdp xrdp-sesman
3. Права доступа и Xorg-обёртка
xrdp запускает X-сервер от имени пользователя. Если у сессии нет прав на /dev/input/*, клавиатура «отваливается» после загрузки Fly.
3.1. Разрешите запуск Xorg любому пользователю
sudo nano /etc/X11/Xwrapper.config
Установите:
allowed_users=anybody
needs_root_rights=no
3.2. Добавьте пользователя в группы ввода
sudo usermod -aG input,tty,video $USER
После выполнения обязательно перезагрузитесь или выйдите/войдите в систему, чтобы группы применились.
4. Специфика Fly DE и Astra Linux
Fly использует собственные обработчики горячих клавиш и может перехватывать ввод до инициализации setxkbmap внутри сессии xrdp.
4.1. Отключите конфликтующие горячие клавиши Fly (опционально)
Если в настройках Fly включены глобальные сочетания (например, Alt+Shift, Ctrl+Space), временно отключите их:
- Пуск → Параметры → Горячие клавиши → Снять конфликтующие привязки
4.2. Автоматическая инициализация раскладки
Создайте файл ~/.xsessionrc (выполняется при старте X-сессии xrdp):
nano ~/.xsessionrc
Вставьте:
#!/bin/sh
sleep 2
export XKB_DEFAULT_LAYOUT=us,ru
export XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle
setxkbmap -layout us,ru -option grp:alt_shift_toggle
Сделайте исполняемым:
chmod +x ~/.xsessionrc
5. Диагностика через логи
Если клавиатура всё ещё не работает, соберите данные для точного анализа:
# В реальном времени следите за подключением
journalctl -u xrdp -u xrdp-sesman -f &
# Подключитесь через xrdp, затем остановите journalctl (Ctrl+C)
Ищите в выводе:
error on proc ...— проблема прав доступаkeymap mismatch— неверная раскладка вxrdp_keyboard.iniFailed to load input driver— конфликтevdev/libinput
Логи сессии Xorg обычно лежат в ~/.xorgxrdp.10.log (или аналогичном, номер дисплея может отличаться). Проверьте строки (**) Option "XkbLayout" и (EE) Failed to open keyboard device.
6. Альтернативные решения и обновления
| Симптом | Решение |
|---|---|
| Клавиатура работает первые 5–10 секунд, потом отключается | Добавить sleep 3 && setxkbmap ... в ~/.xsessionrc (задержка на инициализацию Fly) |
| Работает только английская раскладка | Проверить /etc/default/keyboard и выполнить sudo dpkg-reconfigure keyboard-configuration |
Ошибка Permission denied on /dev/input/event* |
Убедиться, что пользователь в группе input; в Astra Linux SE проверить политики мандатного контроля (pdp-admin или mac-check) |
| xrdp падает при вводе символов | Обновить пакет: sudo apt update && sudo apt install --reinstall xrdp xorgxrdp |
В Astra Linux CE/SE 1.7+ рекомендуется использовать xrdp >= 0.9.21. Если в репозитории старая версия, можно подключить официальный бэкпорт или собрать из исходников с поддержкой xorgxrdp.
Чек-лист быстрого исправления
[default] keyboard_layout=usв/etc/xrdp/xrdp_keyboard.iniallowed_users=anybodyв/etc/X11/Xwrapper.config- Пользователь в группах
input,tty,video ~/.xsessionrcсsetxkbmapиsleep 2sudo systemctl restart xrdp xrdp-sesman- Переподключиться через RDP-клиент
После этих шагов клавиатура в сессии xrdp + Fly стабильно работает в 95% случаев. Если проблема сохраняется, приложите вывод journalctl -u xrdp -u xrdp-sesman --since "5 min ago" и cat ~/.xorgxrdp.*.log — отправив в техническую поддержку Asta Linux.