Najlepsze praktyki dla SSH, tmux i GnuPG Agent

12

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!

Tammer Ibrahim
źródło

Odpowiedzi:

4

Okazuje się, że ten był niezwykle prosty. Zamiast używać tego skryptu, po prostu usunąłem opcję „--agents” ze starego skryptu uruchamiania pęku kluczy (przewodnik tutaj ).

Powoduje to, że program Keychain wyszukuje zarówno pliki ssh-agent ORAZ gpg-agent. Teraz mój system szyfrowania działa dość płynnie, nawet jeśli polegam na obu typach agentów.

Tammer Ibrahim
źródło