Google Remote Desktop on Linux

Google Remote Desktop – простой и удобный инструмент, но если при установке в Windows всё работает как часы из коробки, то при установке в Linux возникают проблемы.
Добиться в Linux-версии аналогичной функциональности с Windows-версией не представляется возможным. Но получить результат, приемлемый для комфортного использования, вполне реально.

Создание выделенного пользователя для установки и использования GRD

Данный сценарий использования не самый удобный, но позволяет решить следующие проблемы:

  • Если пользователь не выполнил удаленный вход в систему, то при попытке входа с клавиатуры происходит возврат на экран входа после попытки авторизваться (“login loop”).
  • Если пользователь выполнил удаленный вход в систему, то при попытке входа с клавиатуры система словно зависает, но на самом деле полностью работоспособна при удаленном подключении (если подключиться удаленно и выполнить выход из системы, то произойдет возврат на экран входа и появится возможность входа с клавиатуры).
username=remote
sudo useradd $username \
  --create-home \
  --home-dir /home/$username \
  --groups sudo \
  --shell /bin/bash
sudo passwd $username
sudo usermod -a -G sudo $username

Установка GRD после входа в систему под выделенным пользователем

Создание каталога для конфигураций GRD решает проблему отсутствия кнопки “Включить” (“Turn On”), разрешающей удаленные подключения к компьютеру.

mkdir ~/.config/chrome-remote-desktop

Скачивание и установка пакета.

wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb -P /tmp
sudo dpkg -i /tmp/chrome-remote-desktop_current_amd64.deb

Переход по ссылке https://remotedesktop.google.com/access и вход в Google Account.

Нажатие кнопки “Включить” (“Turn On”).

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

Объявление параметров сеанса решает проблему постоянного предложения выбрать сессию при каждом подключении (“Select a session to launch your Chrome Remote Desktop environment…”).

sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/gnome-session" > /etc/chrome-remote-desktop-session'
Редактирование параметров аутентификации пользователя

Создание файла аутентификации PolKit решает проблему постоянного запроса аутентификации для создания устройства управления цветом (“Authentication is required to create a color managed device”)..

pkaction --version

Если версия < 0.106

sudo rm /var/crash/*
sudo tee /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla > /dev/null <<'EOF'
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF

Если версия ≥ 0.106

sudo tee /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf > /dev/null <<'EOF'
polkit.addRule(function(action, subject) {
  if ((action.id == "org.freedesktop.color-manager.create-device" ||
    action.id == "org.freedesktop.color-manager.create-profile" ||
    action.id == "org.freedesktop.color-manager.delete-device" ||
    action.id == "org.freedesktop.color-manager.delete-profile" ||
    action.id == "org.freedesktop.color-manager.modify-device" ||
    action.id == "org.freedesktop.color-manager.modify-profile") &&
    subject.isInGroup("{users}")) {
      return polkit.Result.YES;
    }
});
EOF
Редактирование параметров GRD

Редактирование параметров приложения решает проблему отсутствия возможности изменения разрешения экрана.

sudo sed -i "s#$(sudo cat /opt/google/chrome-remote-desktop/chrome-remote-desktop | grep 'DEFAULT_SIZES =')#DEFAULT_SIZES = \"1280x720,1600x900,1920x1080,3840x2160\"#" /opt/google/chrome-remote-desktop/chrome-remote-desktop