используйте ssh-agent, а не gpg-agent-ssh

Вопрос или проблема

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-целей.

Причины замещения:

  1. Автоматическая интеграция: Некоторые оболочки и среды рабочего стола (например, KDE в Kubuntu) автоматически настраивают gpg-agent для работы с SSH-ключами.
  2. Зависимости системы: Удаление gpg-agent может привести к удалению важных зависимостей, что делает этот путь непривлекательным.
  3. Несоответствие конфигурации: Конфигурационные файлы и их параметры могут быть настроены по умолчанию некорректно или содержать устаревшую информацию, что приводит к активации ненужных сервисов.

Пример

Вы описали ситуацию, когда gpg-agent перехватывает переменную SSH_AUTH_SOCK, несмотря на усилия по ее перенастройке. Пример таких усилий включает создание и изменение конфигурационного файла ~/.gnupg/gpg-agent.conf, попытки отключения сервисов через systemctl, и даже вмешательство в файлы сессий.

Применение

Теперь, когда мы определили, почему это происходит, приведем детальные шаги для решения проблемы.

  1. Конфигурация gpg-agent:

    • Убедитесь, что в ~/.gnupg/gpg-agent.conf отсутствует директива enable-ssh-support.
    • Если этот файл отсутствует, создайте его, чтобы не возникало автоматической конфигурации gpg-agent для SSH. В случае, если файл пустой, это препятствует начальной настройке.
  2. Изменение системных настроек:

    • Выполните команду 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
  3. Редактирование профиля и скриптов запуска:

    • Если вмешательства в /etc/X11/Xsession.d/90gpg-agent недостаточно, проверьте наличие других скриптов, которые могут перезаписывать параметры среды.
    • Убедитесь, что ваш файл .bashrc действительно содержит настройки для запуска ssh-agent и что блоки инициализации переменной SSH_AUTH_SOCK скорректированы для исключения случайных перезаписей.
  4. Среда рабочего стола:

    • Переключитесь на другой дисплейный менеджер (например, на SDDM вместо lightdm, если это применимо) и проверьте, не является ли он источником перенастройки.
    • В настройках вашего дисплейного менеджера (например, SDDM или lightdm) уберите автозапуск gpg-agent.
  5. Дополнительно:

    • Используйте скрипты автозагрузки для принудительной установки ваших переменных перед запуском сессии Wayland.
    • Убедитесь, что другие сессии или приложения, запускаемые автоматически, не вносят изменения в ваши SSH-переменные.

В результате применения указанных шагов вы сможете блокировать gpg-agent от перехвата контролируемого ssh-agent сокета и использовать ssh-agent в соответствии с вашими предпочтениями и для управления SSH-ключами, сохраняя систему стабильной и функциональной.

Оцените материал
Добавить комментарий

Капча загружается...