Почему пропуск не позволяет добавлять или редактировать записи?

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

Я использую pass (cli pw manager) уже пару лет, и только что начал использовать yubikeys.

У меня (2) YK, которые я настроил как дубликаты друг друга, перенесив одни и те же под-ключи gpg (S, E и A) на каждую из них.

Я добавил идентификатор gpg-ключа YK в свой файл ~/.password-store/.gpg-id и переинициализировал хранилище, чтобы перешифровать записи с использованием нового ключа.

Теперь я могу использовать pass с любой из моих YK, чтобы открыть запись в хранилище паролей с помощью pass, однако, когда я пытаюсь отредактировать существующую запись или добавить новую, я сталкиваюсь с:

$pass add test
Введите пароль для теста: 
Повторите пароль для теста: 
gpg: B7C0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1BB7: пропущено: Нет открытого ключа
gpg: [stdin]: ошибка шифрования: Нет открытого ключа
Шифрование пароля прервано.

Проверка ключа возвращает:

$gpg -K YUBI
sec#  rsa4096/289xxxxxxxxxx8B5 2024-11-01 [SC] [истекает: 2034-10-30]
      Отпечаток ключа = 8C6B xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 58B5
      Keygrip = E7608xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx37AFD
uid                 [всёобъемлющий] Имя Фамилия (YUBIKEY) <[email protected]>
ssb>  rsa4096/130xxxxxxxxxxA7D 2024-11-01 [S] [истекает: 2034-10-30]
      Keygrip = 18DD9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1599B
ssb>  rsa4096/A39xxxxxxxxxxEBD 2024-11-01 [E] [истекает: 2034-10-30]
      Keygrip = 5BD06xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8B9FD
ssb>  rsa4096/779xxxxxxxxxxBAA 2024-11-01 [A] [истекает: 2034-10-30]
      Keygrip = 0A10BxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAFA2F

и

gpg -k YUBI
pub   rsa4096/289xxxxxxxxxx8B5 2024-11-01 [SC] [истекает: 2034-10-30]
      Отпечаток ключа = 8C6B xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 58B5
      Keygrip = E7608xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx37AFD
uid                 [всёобъемлющий] Имя Фамилия (YUBIKEY) <[email protected]>
ssb>  rsa4096/130xxxxxxxxxxA7D 2024-11-01 [S] [истекает: 2034-10-30]
      Keygrip = 18DD9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1599B
ssb>  rsa4096/A39xxxxxxxxxxEBD 2024-11-01 [E] [истекает: 2034-10-30]
      Keygrip = 5BD06xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8B9FD
ssb>  rsa4096/779xxxxxxxxxxBAA 2024-11-01 [A] [истекает: 2034-10-30]
      Keygrip = 0A10BxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxAFA2F

Попытка повторно импортировать pub не привела к изменениям, как и ожидалось.

Шифрование файла так:

$ gpg -r YUBIKEY -e файл

а затем расшифровка с помощью:

$ gpg -d файл.gpg

работает как ожидалось. Я ввожу пароль, и содержимое файла выводится после этого.

Теперь я в растерянности и не уверен, в чем проблема. Если у кого-то есть предложения или советы, я был бы очень признателен. Спасибо.

Ответ или решение

Проблема, с которой вы столкнулись при использовании pass и YubiKey, связана с неправильной конфигурацией ключей GPG, что приводит к невозможности добавления или редактирования записей. Давайте разберемся в этом вопросе подробнее.

Контекст проблемы

По вашему описанию видно, что у вас настроены два YubiKey, оба из которых используют одни и те же подписи GPG. Вы правильно добавили идентификатор ключа YubiKey в файл ~/.password-store/.gpg-id и повторно инициализировали хранилище паролей, чтобы зашифровать записи с использованием нового ключа. Однако ошибка, которую вы получаете, указывает на отсутствие открытого ключа для шифрования.

Причины возникновения ошибки

  1. Нет открытого ключа для шифрования: Ошибка gpg: skipped: No public key говорит о том, что GPG не может найти открытый ключ, необходимый для шифрования вашей записи. Это происходит, когда GPG не может сопоставить используемый вами YubiKey с открытым ключом, который хранится в локальном хранилище.

  2. Проблемы с конфигурацией GPG: Возможно, в процессе настройки ключей на YubiKey произошла ошибка. Например, ключи, которые вы перенесли на YubiKey, могут быть не связаны корректно с вашим локальным хранилищем GPG.

  3. Использование неправильного ключа: Убедитесь, что pass использует тот же ключ, что и GPG, для шифрования и расшифровки ваших данных. Возможно, необходимо пересоздать ключи или переустановить конфигурацию.

Решения

  1. Проверьте наличие открытого ключа: Убедитесь, что открытый ключ вашего YubiKey доступен в вашей локальной базе данных ключей GPG. Используйте команду gpg --list-keys и убедитесь, что открытый ключ присутствует.

  2. Пересоздайте хранилище: Если ключи правильно настроены, возможно, вам потребуется пересоздать или перезагрузить своё хранилище паролей. Попробуйте удалить файл ~/.password-store/.gpg-id, а затем заново добавить идентификатор вашего открытого ключа и повторно инициализировать хранилище для зашифровки.

  3. Обновите ключи GPG: Если вы изменяли что-то в конфигурации ключей GPG, убедитесь, что вы повторно импортировали открытые ключи с помощью команды gpg --import. Если вы изменяли ключи, возможно, потребуется заново установить их в хранилище.

  4. Проверьте правильность использования GPG: Убедитесь, что ваши действия с GPG работают независимо от pass. Проверьте, что команда gpg -r YUBIKEY -e file работает без ошибок, и убедитесь, что вы используете тот же самый идентификатор ключа при работе с pass.

Заключение

Подводя итог, проблема с pass и YubiKey может быть связана с отсутствием открытого ключа для шифрования, неправильной конфигурацией ключей или несовпадением ключей между локальным хранилищем и YubiKey. Выполняя предложенные шаги для проверки и исправления конфигурации, вы сможете решить возникшую проблему и продолжить использовать pass с вашим YubiKey. Если проблема сохраняется, рекомендуется обратиться к документации pass и GPG для дальнейшего изучения возможных нюансов настройки.

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

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