Usiłuję skonsolidować moje oprogramowanie szyfrujące do GnuPG i mam problem.
Moja podstawowa jednostka to bezgłowy serwer i pracuję wyłącznie w tmux. Nie ma sesji X, dlatego skonfigurowałem gpg-agent, aby używał przekleństw pinentry. Skonfigurowałem gpg-agent, aby był wywoływany przy logowaniu z emulacją ssh-agent za pomocą tego skryptu:
if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
eval `cat $gnupginf`
eval `cut -d= -f1 $gnupginf | xargs echo export`
else
eval `gpg-agent -s --enable-ssh-support --daemon`
fi
Dodałem już mój klucz ssh do gpg-agent, jednak przy próbie kolejnej sesji ssh polecenie się zawiesza.
Odkryłem, że jeśli zabiję gpg-agent i utworzę nową powłokę logowania, agent działa tak, jak powinien (wywoływanie przekleństw pinentry, a następnie działanie jak ssh-agent).
Jeśli jednak utworzę kolejną powłokę logowania (powiedzmy, otwierając inny panel tmux) i spróbuję ssh, polecenie zawiesi się, a okno przekleństwa pinentry zostanie wydrukowane nad zawartością powłoki logowania, która pierwotnie uruchomiła agenta.
Co więcej, jeśli zamknąłem powłokę, która pierwotnie uruchomiła agenta, przekleństwa pinentry i tak są wywoływane i powodują nieskończoną pętlę paraliżującą procesor. (Znany błąd, patrz http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936 .)
Zasadniczo chciałbym wiedzieć, co zmienić w mojej konfiguracji, aby agent GnuPG działał tak płynnie, jak ssh-agent. Dzięki za wszelką pomoc!