Я пытаюсь настроить OfflineIMAP для аутентификации через зашифрованный файл gpg (таким образом я могу объединить все свое шифрование с процессом gpg-agent).
Из документации кажется, что единственный способ зашифровать пароли сервера - это использовать gnome-keyring (который я предпочел бы не запускать на моем безголовом сервере). Есть ли способ передать мой пароль из файла gpg так, как вы можете с помощью mutt?
Я знаю, что вы можете добавить дополнительные функции в offlineimap с помощью файла Python с расширением, но боюсь, я не знаю, с чего начать.
encryption
gpg
offlineimap
Таммер Ибрагим
источник
источник
root
Пользователь может многое сделать, чтобы обойти шифрование. Помните, что даже пересылка X11 с ненадежных машин (например, черезssh -X
) небезопасна.Ответы:
Другой способ оставить оффлайн-карту работающей, зная ваш пароль, но не помещая пароль на диск, - оставить оффлайн-карту запущенной в tmux / screen с
autorefresh
включенной настройкой~/.offlineimaprc
Вам необходимо добавить
autorefresh = 10
в[Account X]
раздел файл offlineimaprc, чтобы он проверялся каждые 10 минут. Также удалите любую строку конфигурации с помощьюpassword
илиpasswordeval
.Затем запустите offlineimap - он запросит ваш пароль и кеширует его в памяти. Он не выйдет после первого запуска, но будет спать в течение 10 минут. Затем он проснется и снова запустится, но все равно запомнит ваш пароль.
Таким образом, вы можете оставить сеанс tmux запущенным с offlineimap, ввести пароль один раз, и offlineimap будет в порядке после этого.
источник
Я использую следующий метод, который работает довольно хорошо:
1) Храните ваши пароли в отдельных зашифрованных файлах gpg. Например
~/.passwd/<accountname>.gpg
2) Создайте файл расширения Python с именем по вашему выбору (например,
~/.offlineimap.py
), со следующим содержанием:3) Измените свой файл .offlineimaprc, чтобы сообщить ему о файле python и рассказать, как читать ваши пароли.
Если у вас есть несколько учетных записей, которые проверяются одновременно (отдельные потоки), и вы используете gpg-agent, он запросит у вас парольную фразу для каждой учетной записи. Я заполняю агент, создавая file (
echo "prime" | gpg -e -r foo@bar.com > ~/.passwd/prime.gpg
), и запуская агент gpg, расшифровывая этот файл при запуске offlineimap. Для этого добавьте следующее в конец~/.offlineimap.py
:источник
Люблю ответ от @kbeta. Однако он
subprocess.check_output()
был представлен только в Python 2.7 - так вот версия,offlineimap.py
которая будет работать со старыми версиями Python:источник