Рутокен и rdesktop
Небольшой how-to пользователям удаленного рабочего стола Windows с тонких linux терминалов и использующих Рутокен для авторизации на сервере:
тонкий терминал linux должен отвечать следующим требованиям
1) наличие libpcsclite, pcscd
2) наличие libopenct, openct для Рутокена S (скомпилированные с поддержкой openct-ifd.bundle)
3) наличие libccid для Рутокена ЭЦП
4) наличие rdesktop, скомпилированного с поддержкой смарт-карт
Теперь чуть более подробно:
Программное обеспечение pcsc-lite является де-факто стандартным смарткарточным middleware в мире *nix.
Оно представляет собой аналог Windows ресурс-менеджера winscard.dll
Демон pcscd работает со смарткартами через своего рода "драйвера", которые обычно находятся в системном каталоге
/usr/lib/pcsc/drivers
Для Рутокена ЭЦП драйвером является стандартная библиотека libccid, которая поддерживает почти все известные ccid-устройства.
Для Рутокена S драйвером будет являться скомпилированный особым образом OpenCT.
Когда OpenCT компилируется с флагом
--with-bundle
в папке
/usr/lib/pcsc/drivers
появляется openct-ifd.bundle.
Это и есть pcsc-драйвер для Рутокена S.
Итак, для работы c Рутокеном S потребуются libpcsclite, pcscd и libopenct, openct (по особому сконфигурированные)
Однако, не во всех Linux дистрибутивах OpenCT скомпилирован правильно.
Например, в Ubuntu был баг, который благополучно пофикшен. https://bugs.launchpad.net/ubuntu/+sour … bug/436545
Зато теперь по крайней мере в Ubuntu начиная с версии 10.04 (lucid) проблем нет.
Для работы с Рутокеном ЭЦП потребуются libpcsclite, pcscd и libccid.
Бывает так что версия libccid слишком стара для поддержки Рутокена ЭЦП.
Узнать это можно здесь https://forum.rutoken.ru/topic/1644/
Ну и самое главное: rdesktop
rdesktop должен быть скомпилирован с поддержкой смарт-карт, это включается опцией --enable-smartcard
Не во всех linux дистрибутивах rdesktop распространяется с такой опцией, но пакет rdesktop-smartcard достаточно часто встречается в сторонних репозиториях и найти его для нужного дистрибутива обычно не представляет проблем.
Для того, чтобы rdesktop попытался увидеть Рутокен ему нужно указать опцию:
-r scard