Gpg'yi oturum başına yalnızca bir kez parola girecek şekilde yapılandırma


18

Parolayı gpgyalnızca bir kez gireceğim şekilde yapılandırmak mümkün mü ve tüm oturum için çalışacağım (kullanıyorum Ubuntu/XFce)?

Nasıl gpgçalıştığından emin değilim , varsayılan fonksiyon parola gpgister gpg-agentve ajan parola sormak için pin-giriş çalışır görünüyor.

Oturum başına yalnızca bir kez pinentry-curses kullanmak istiyorum, bu yüzden parolamı yapıştırabilirim ( hexbir cümlenin dizesi var - kullanıyorum echo -n <SENTENCE> | str-hex) ve Claws Mail'den e-posta imzalayıp parola koymadan (Claws ile pinentry-curses kullanamazsınız) Posta).

Yanıtlar:


16

Bu sayfada açıklanan tekniği kullanabilirsiniz:

http://fvue.nl/wiki/Debian_4.0:_Installing_gpg-agent

İşte öz:

  1. Gpg-agent ve pinentry programını yükleyin:

    sudo apt-get install gnupg-agent pinentry-curses
    
  2. Aşağıdaki satırları adresine ekleyin ~/.profile. POSIX onaylayan herhangi bir kabuk bu dosyayı içermelidir.

    # Invoke GnuPG-Agent the first time we login.
    # Does `~/.gpg-agent-info' exist and points to gpg-agent process accepting signals?
    if test -f $HOME/.gpg-agent-info && \
        kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
        GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info | cut -c 16-`
    else
        # No, gpg-agent not available; start gpg-agent
        eval `gpg-agent --daemon --no-grab --write-env-file $HOME/.gpg-agent-info`
    fi
    export GPG_TTY=`tty`
    export GPG_AGENT_INFO
    

    Bu küçük komut dosyası, oturum açtığınızda etkinleştirilir. Ajan çalışmıyorsa başlatılır. Aracı başlatıldığında, ona bağlanmak için ortam değişkenlerinin nasıl ayarlanacağını gösterir. Komut dosyası bu değerleri kaydeder ~/.gpg-agent-info, böylece başka bir oturum açtığınızda komut dosyası değişkenleri doğru şekilde ayarlayabilir ve böylece aracıyı kullanabilir.

Önyükleme başına parolanızı yalnızca bir kez girmeniz gerekir. Ajan anahtarlarınızı hafızaya kaydeder, böylece parolayı tekrar girmeniz gerekmez.


Bu komut dosyasını mutlu bir şekilde kullanıyordum, ancak rastgele başarısız olur. Sonunda, bunu şartlı olarak değiştirdim GPG_PROCESS=`cut -d: -f 2 $HOME/.gpg-agent-info` if test -f $HOME/.gpg-agent-info && \ kill -0 ${GPG_PROCESS} 2>/dev/null && \ [[ ${GPG_PROCESS} == `pgrep -x -u "${USER}" gpg-agent` ]] ; thenve iyi çalıştı. Sorun, yukarıdaki komut dosyasının işlemin .gpg-agent-infocanlı olup olmadığını kontrol etmesi ve sinyalleri kabul etmesidir kill -0. Bir süreç var, ama değilse gpg-agent, yanlış davranışlar elde ederiz. Ekli kod, doğru işleme sahip olduğumuzu kontrol eder.
wyer33
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.