Вопрос или проблема
Kubuntu 24.10, сессия Wayland
Я обновился до 24.10, и похоже, что gpg-agent хочет захватить сокет ssh-agent. Мне этого не хочется, я хочу использовать ssh-agent с ключами openssh. У меня возникают серьезные трудности с тем, чтобы остановить gpg-agent от перезаписи моего SSH_AUTH_SOCK (я запускаю ssh-agent из .bashrc). Когда я впервые вхожу в систему, все выглядит хорошо, и SSH_AUTH_SOCK таков, как я ожидал, но в следующем открытом терминале сокет уже захвачен gpg-agent.
Попытки исправления:
- Если я попробую удалить gpg-agent, он захочет убрать кучу зависимых пакетов вместе с ним.
- Я думал, что он не будет использоваться, если у меня нет
enable-ssh-support
в~/.gnupg/gpg-agent.conf
. У меня не было этого файла, поэтому я подумал, что создам его и оставлю пустым. Не похоже, чтобы существовал переключатель, аннулирующий поддержку, типаno-enable-ssh-support
. - Закомментировать все в
/etc/X11/Xsession.d/90gpg-agent
, даже несмотря на то, что мы на Wayland - Отключить все службы с помощью
systemctl --user disable gpg-agent.service gpg-agent.socket gpg-agent-ssh.socket gpg-agent-extra.socket gpg-agent-browser.socket
Я все равно не могу остановить gpg-agent от вмешательства в мой ssh auth socket – кому-то это удалось? Я не хочу использовать gpg для ssh.
Ответ или решение
Чтобы решить проблему, связанную с использованием ssh-agent
вместо gpg-agent
для управления SSH-ключами на системе Kubuntu 24.10 с сессией Wayland, необходимо предпринять несколько целенаправленных шагов. Прежде чем рассматривать конкретные решения, давайте разберем теоретические аспекты и причины, по которым gpg-agent
перехватывает управление SSH-сокетом.
Теоретическая часть
На современных дистрибутивах Linux gpg-agent
часто интегрирован для управления SSH-ключами, чтобы обеспечить единообразное управление ключами для различных протоколов. Это упрощает конфигурацию для конечных пользователей, но может вызывать проблемы, если администратор предпочитает использовать ssh-agent
исключительно для SSH-целей.
Причины замещения:
- Автоматическая интеграция: Некоторые оболочки и среды рабочего стола (например, KDE в Kubuntu) автоматически настраивают
gpg-agent
для работы с SSH-ключами. - Зависимости системы: Удаление
gpg-agent
может привести к удалению важных зависимостей, что делает этот путь непривлекательным. - Несоответствие конфигурации: Конфигурационные файлы и их параметры могут быть настроены по умолчанию некорректно или содержать устаревшую информацию, что приводит к активации ненужных сервисов.
Пример
Вы описали ситуацию, когда gpg-agent
перехватывает переменную SSH_AUTH_SOCK
, несмотря на усилия по ее перенастройке. Пример таких усилий включает создание и изменение конфигурационного файла ~/.gnupg/gpg-agent.conf
, попытки отключения сервисов через systemctl
, и даже вмешательство в файлы сессий.
Применение
Теперь, когда мы определили, почему это происходит, приведем детальные шаги для решения проблемы.
-
Конфигурация gpg-agent:
- Убедитесь, что в
~/.gnupg/gpg-agent.conf
отсутствует директиваenable-ssh-support
. - Если этот файл отсутствует, создайте его, чтобы не возникало автоматической конфигурации
gpg-agent
для SSH. В случае, если файл пустой, это препятствует начальной настройке.
- Убедитесь, что в
-
Изменение системных настроек:
- Выполните команду
systemctl --user mask gpg-agent-ssh.socket
, чтобы блокировать запуск этого сокета. - Еще обязательно убедитесь, что остальные сервисы
gpg-agent
не активируются:systemctl --user stop gpg-agent.service systemctl --user disable gpg-agent.service systemctl --user mask gpg-agent.service
- Выполните команду
-
Редактирование профиля и скриптов запуска:
- Если вмешательства в
/etc/X11/Xsession.d/90gpg-agent
недостаточно, проверьте наличие других скриптов, которые могут перезаписывать параметры среды. - Убедитесь, что ваш файл
.bashrc
действительно содержит настройки для запускаssh-agent
и что блоки инициализации переменнойSSH_AUTH_SOCK
скорректированы для исключения случайных перезаписей.
- Если вмешательства в
-
Среда рабочего стола:
- Переключитесь на другой дисплейный менеджер (например, на SDDM вместо lightdm, если это применимо) и проверьте, не является ли он источником перенастройки.
- В настройках вашего дисплейного менеджера (например, SDDM или lightdm) уберите автозапуск
gpg-agent
.
-
Дополнительно:
- Используйте скрипты автозагрузки для принудительной установки ваших переменных перед запуском сессии Wayland.
- Убедитесь, что другие сессии или приложения, запускаемые автоматически, не вносят изменения в ваши SSH-переменные.
В результате применения указанных шагов вы сможете блокировать gpg-agent
от перехвата контролируемого ssh-agent
сокета и использовать ssh-agent
в соответствии с вашими предпочтениями и для управления SSH-ключами, сохраняя систему стабильной и функциональной.