Вопрос или проблема
У меня есть две учетные записи на моем домашнем компьютере: одна для работы, одна общая. Иногда я хочу получить доступ к своей базе данных паролей из общей учетной записи, находясь в работе. Проблема в том, что я получаю следующую ошибку:
gpg: расшифровка не удалась: нет закрытого ключа
Я использую Arch Linux и KDE.
Это связано с тем, что пароль будет введен через tty или окно X, и оба принадлежат первоначальному пользователю. Я нашел людей, предлагающих использовать screen
для запуска нового tty, но это тоже не сработало. Я получил `/run/screen/…. Нет такого файла или директории`
Ответ был:
su - user
script /dev/null
screen
Из здесь, который ссылается на этот как на оригинальный источник.
Эта проблема возникает потому, что ключ GPG принадлежит пользователю, а не root.
В посте
ключ GPG пользователя не может быть использован SUDO
принятый ответ от автора был:
Решение: добавлен следующий код в bash-скрипт:
HOME=/home/user/
--gpg-options "--homedir=/home/username/.gnupg"
.
Еще одно решение заключалось в использовании опции --preserve-env
для sudo,
чтобы GPG в сессии sudo мог находить работающий gpg-agent
в пользовательской сессии, например:
sudo --preserve-env command
Существует более простой способ решения этой проблемы: используйте
ssh user@localhost
Ответ или решение
Проблема с использованием GPG ключей при попытке переключения пользователя на Arch Linux
Работа с GPG (GNU Privacy Guard) ключами может вызывать сложности, особенно когда речь идет о переключении между пользователями в Linux-системах. В вашем случае вы сталкиваетесь с ошибкой "gpg: decryption failed: No secret key" при попытке доступа к базе данных паролей из учетной записи общего назначения, когда вы находитесь под учетной записью рабочего пользователя. Эта проблема возникает из-за того, что GPG ключи хранятся в домашнем каталоге каждого пользователя и доступны только ему.
Причины проблемы
-
Отсутствие доступа к GPG ключам: Когда вы используете команду
su - <user>
, вы переключаетесь на другого пользователя, и система ожидает, что вы будете использовать его домашний каталог (/home/user
), где находятся его GPG ключи. Ваша рабочая учетная запись не может получить доступ к этим ключам, так как ключи не являются общими. -
Разные сеансы X и TTY: Ошибка также может возникать, если вы пытаетесь использовать терминал, который принадлежит другому пользователю. GPG использует механизм аутентификации через
gpg-agent
, который может не всегда распознать, что вы хотите использовать ключи другого пользователя.
Решения
Ниже приведены несколько методов решения данной проблемы:
-
Изменение домашнего каталога для GPG:
Вы можете установить переменнуюHOME
на домашний каталог пользователя, к которому вы хотите получить доступ. Например:HOME=/home/user gpg --decrypt /path/to/file.gpg
-
Использование параметров GPG:
Как упоминалось, можно использовать--gpg-options
для указания директории, где находятся ключи пользователя:gpg --gpg-options "--homedir=/home/username/.gnupg" --decrypt /path/to/file.gpg
-
Применение
--preserve-env
с sudo:
Если вы используетеsudo
и хотите, чтобы GPG мог использовать ключи текущего пользователя, вы можете добавить опцию--preserve-env
:sudo --preserve-env gpg --decrypt /path/to/file.gpg
-
Использование screencast:
Как было предложено, использованиеscreen
для создания новой сессии TTY также может помочь. Однако вам может потребоваться предварительно создать необходимые каталоги под/run/screen
. -
SSH вход в localhost:
Наиболее простое и эффективное решение – использовать SSH для подключения к своему localhost:ssh user@localhost
Этот метод позволит вам получить доступ к своей учетной записи и её ключам, не сталкиваясь с проблемами, связанными с правами доступа и текущими сессиями.
Заключение
Работа с GPG ключами в Linux может показаться сложной из-за особенностей управления правами доступа и сессиями. Однако, используя указанные подходы, вы сможете решить проблемы, связанные с доступом к вашим ключам, и продолжить использовать свои инструменты шифрования без лишних затруднений. Выбор подходящего решения будет зависеть от ваших специфических потребностей и сценариев работы.