Próbuję skonfigurować OfflineIMAP do uwierzytelniania za pomocą pliku zaszyfrowanego gpg (w ten sposób mogę skonsolidować całe moje szyfrowanie do mojego procesu agenta gpg).
Z dokumentacji wynika, że jedynym sposobem szyfrowania haseł do serwera jest użycie klucza gnome (którego wolałbym nie uruchamiać na moim bezgłowym serwerze). Czy istnieje sposób na potokowanie mojego hasła z pliku gpg w sposób, w jaki możesz to zrobić za pomocą mutta?
Wiem, że możesz dodać dodatkowe funkcje do offlineimap za pomocą rozszerzenia pliku python, ale obawiam się, że nie wiedziałbym od czego zacząć.
encryption
gpg
offlineimap
Tammer Ibrahim
źródło
źródło
root
użytkownik może zrobić, aby obejść szyfrowanie. Pamiętaj, że nawet przekazywanie X11 z niezaufanych maszyn (np. Przezssh -X
) nie jest bezpieczne.Odpowiedzi:
Inną metodą pozostawienia działającej mapy offline ze znajomością hasła, ale bez umieszczania hasła na dysku, jest pozostawienie działającej mapy offline w tmux / screen z
autorefresh
włączonym ustawieniem~/.offlineimaprc
Musisz dodać
autorefresh = 10
do[Account X]
sekcji pliku offlineimaprc, aby sprawdzać co 10 minut. Usuń także dowolną linię konfiguracji za pomocąpassword
lubpasswordeval
.Następnie uruchom offlineimap - poprosi o hasło i zapisze je w pamięci podręcznej. Nie wyjdzie po pierwszym uruchomieniu, ale będzie spał przez 10 minut. Potem się obudzi i uruchomi ponownie, ale nadal będzie pamiętał twoje hasło.
Możesz więc zostawić sesję tmux uruchomioną z offlineimap, wpisz hasło raz, a offlineimap będzie w porządku.
źródło
Używam następującej metody, która działa dość dobrze:
1) Przechowuj hasła w osobnych plikach zaszyfrowanych gpg. Na przykład
~/.passwd/<accountname>.gpg
2) Utwórz plik rozszerzenia Python o wybranej nazwie (np.
~/.offlineimap.py
), O następującej treści:3) Zmodyfikuj plik .offlineimaprc, aby poinformować go o pliku python i dowiedzieć się, jak czytać hasła
Jeśli masz kilka kont sprawdzanych jednocześnie (osobne wątki) i korzystasz z gpg-agent, to poprosi o podanie hasła dla każdego konta.
echo "prime" | gpg -e -r [email protected] > ~/.passwd/prime.gpg
Przygotowuję agenta, tworząc plik ( ) i uruchamiając agenta gpg, odszyfrowując ten plik podczas uruchamiania offlineimap. Aby to zrobić, dodaj na końcu~/.offlineimap.py
:źródło
Podoba mi się odpowiedź @kbeta. Jednak
subprocess.check_output()
został wprowadzony tylko w Pythonie 2.7 - więc jego wersjaofflineimap.py
będzie działać ze starszymi wersjami Pythona:źródło