LTSP/LocalApps

Материал из ALT Linux Wiki

Локальные приложения

Локальными приложениями зовутся те программы, что исполняются непосредственно на терминальном клиенте.

Зачем они нужны?

  • Разгрузка ресурсов терминального сервера (в случае, если сервер относительно слаб, а клиенты - мощны)
  • Работа с локальным железом

Примеры

  • Видеоплеер или flash plugin, чтобы не грузить сеть разжатым видео
  • Софтфон, чтобы напрямую работать с микрофоном без pulseaudio

Технология

Внимание: Данная технология описана всего лишь, как концепция, и, наверное, нуждается в уточнении и дополнении.

Довольно безопасный, как мне кажется, механизм воплощения локальных приложений можно себе представить так:

  • каждому пользователю, а также root'у (или наверное лучше ltspadmin'у) создаётся по беспарольному ключу авторизации для доступа к терминальному клиенту (что-нибудь вроде ssh-keygen -t dsa -N "" -f ~/.ssh/id_dsa_ltsp)
  • при сотворении ltsp-корня:
    • устанавливается пакет openssh-server
    • копируется публичный ключ получившегося ltsp-клиента в known_hosts:
echo -n "* " >>/etc/openssh/ltsp_known_hosts
cat /var/lib/ltsp/i586/etc/openssh/ssh_host_rsa_key.pub >> /etc/openssh/ltsp_known_hosts
    • копируется публичный ключ root'а (ltspadmin'а) в /var/lib/ltsp/i586/root/.ssh/authorized_keys2
    • в файле /var/lib/ltsp/i586/etc/default/ltsp-client-setup в переменную copy_dirs добавляется /root - там будут добавляться ключи доступа пользователей и Xauthority.
  • при логине пользователя на терминальном клиенте:
    • из файла, исполняющегося с правами рута (/etc/X11/kdm/Xstartup), заходим по ssh на TC (ключ для этого мы добавили при создании образа клиента) и добавляем в /root/.ssh/authorized_keys2 публичный ключ логинящегося пользователя;
    • из файла, исполняющегося от имени пользователя (/etc/X11/profile.d/ltsp-login.sh) узнаём параметры X-аутентификации, заходим по ssh под именем рута на TC (ключ для этого уже добавлен), и добавляем данные X-аутентификации.
  • в ходе работы на TC пробуем запустить локальное приложение:
ssh -o GlobalKnownHostsFile=/etc/openssh/ltsp_known_hosts -i ~/.ssh/id_dsa_ltsp \
root@my_tc "xterm -display :my_display"

--Prividen 17:03, 3 ноября 2008 (UTC)