Вопрос или проблема
Как воспроизвести:
# Инициализируйте токен PKCS11 (любой метод подойдет)
ssh-add -t 72000 -s /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
# Токен работает как ожидалось
# Попытка входа в токен с использованием другого инструмента
pkcs11-tool -l -L
# Первая сессия токена теперь сломана
Правильное поведение, которое, похоже, было в Ubuntu до 24.04, заключается в том, что оригинальная сессия продолжает работать, но в 24.04 любой запрос на вход ломает старые сессии.
Кто-нибудь знает, как предотвратить такое поведение (т.е. новые сессии не должны ломать старые сессии), или кто-то может помочь в отладке того, что происходит? dmesg
не показывает очевидных ошибок.
Ответ или решение
Проблема: Непостоянство PKCS-сессии в Ubuntu 24.04 при использовании другого инструмента аутентификации токена
Ваша проблема заключается в том, что после выполнения команды pkcs11-tool -l -L
сессия, инициированная через ssh-add
, перестает работать. Это поведение, кажется, изменилось в новой версии Ubuntu 24.04, где запросы на вход в токен обрывают старые сессии, что не наблюдалось в предыдущих версиях.
Анализ Проблемы
У вас уже есть работающая сессия PKCS#11, и вы используете ее для аутентификации через SSH. Однако, когда вы обращаетесь к токену с помощью pkcs11-tool
, это якобы приводит к разрыву существующей сессии. Эту проблему можно объяснить несколькими факторами:
-
Управление Сессиями: В возможно измененной логике управления сессиями в библиотеках, связанных с PKCS#11, может быть предусмотрено, что новая аутентификация приводит к тому, что предыдущие сессии становятся недоступными.
-
Конфигурация Библиотек: Библиотеки, такие как OpenSC, могут иметь различия в реализации с разных версий, что также может влиять на то, как осуществляется управление сессиями и токенами.
-
Проблемы С Совместимостью: Неполадки с совместимостью могут возникать из-за изменения API или даже поведения службы. Возможностью являться альтернативной методологии работы с токенами в версии Ubuntu 24.04.
Возможные Решения
-
Обновление библиотек: Убедитесь, что у вас установлены последние обновления для OpenSC и всех связанных библиотек. Используйте команду
sudo apt update && sudo apt upgrade
. -
Настройка SSH-Agent: Попробуйте добавить параметры управления сессиями в SSH-Agent, чтобы явным образом указать, как следует обрабатывать сессии. Например, можно попробовать использовать
ssh-add -A
перед выполнениемpkcs11-tool
, чтобы инициировать неавторизованные сессии. -
Использование альтернативных инструментов: Если проблема сохраняется, возможно, стоит рассмотреть использование других инструментов для работы с токенами PKCS#11 или альтернативных библиотек, которые могли продемонстрировать лучшую стабильность.
-
Обращение к документации: Ознакомьтесь с документацией по OpenSC и PKCS#11. Возможно, были внесены изменения в способ работы с сессиями, которые могут дать дополнительную информацию о вашей проблеме.
-
Логирование и отладка: Для более глубокого анализа попробуйте включить дополнительное логирование для вашей библиотеки PKCS#11 и SSH. Это может помочь в диагностике проблемы и предоставлении более конкретных данных о том, что происходит при вызове команд.
-
Обратитесь к сообществу: Есть вероятность, что данная проблема уже обсуждалась в сообществе Ubuntu или OpenSC. Рассмотрите возможность обращения на форумы или GitHub репозитории данных библиотек.
Заключение
Изменение поведения PKCS#11 в Ubuntu 24.04 в отношении сессий может иметь множество причин, включая изменения в самой библиотеке и в способах работы с токенами. Применение предложенных методов поможет вам диагностировать и, возможно, решить данную проблему. Не забывайте оставаться на связи с сообществом разработчиков, так как другие субъекты могут предоставить информацию или решения, которые были успешными.