Tüm gpg alt anahtar parolalarını bir kerede önbellekte sakla? Birden fazla gpg şifre girişine gerek var mı?


10

Gpg şifremi yalnızca bir kez girip tüm alt anahtarlarımın kilidini açabilir miyim (imzalama, şifre çözme, kimlik doğrulama)?

Şu anda, gpg şifremi üç kez girmem gerekiyor (imzalama, şifre çözme, kimlik doğrulama için). Bu elverişsiz.

Bir kabuk senaryosu bulmaya çalıştım.

#!/bin/bash
set -x
set -e
set +o history

signing_key=77BB3C48
encryption_key=CE998547

tempfile="$(mktemp)"
echo "test" > testfile

unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo

exec 3<<<"$passphrase"

gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"

gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"

exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"

Ancak ne yazık ki, bu şekilde gnupg-agent parolaları parolayı önbelleğe almaz. Bu düzeltilebilir mi?

Sistem bilgisi:

  • Bu kabuk betiğini kullanmadığımda, gnupg-agent ile hiçbir sorunum yok. Kabuktaki bir dosyayı el ile imzaladığımda / şifresini çözdüğümde, pinentry iki kez parola ister, sonra yeniden başlatılana kadar önbelleğe alır.
  • Debian Wheezy'i kullanma.
  • gpg sürümü:

dpkg -l | grep gnupg

ii  gnupg                                        1.4.12-7+deb7u3                    i386         GNU privacy guard - a free PGP replacement
ii  gnupg-agent                                  2.0.22-3                           i386         GNU privacy guard - password agent
ii  gnupg-curl                                   1.4.12-7+deb7u3                    i386         GNU privacy guard - a free PGP replacement (cURL)
ii  gnupg2                                       2.0.22-3                           i386         GNU privacy guard - a free PGP replacement (new v2.x)

Ben ettik sorulan bir süre önce mesaj listesiyle gnupg kullanıcılar, ancak yanıt olmadığında.

Belki de bu cevap işe yarayacaktır? Belki gpg-connect-agentde gereklidir?


Etkilendim: benim için exec 3<<<"$passphrase"bile yeniydi.
Hauke ​​Laging

Yanıtlar:


3

Orada gnome-anahtarlık-cin ve denizatı çok kolay anahtar ve şifre yönetimini kolaylaştırır.

Temel olarak gnome-keyring-daemon'u bir gpg aracısı olarak çalıştırıyorsanız, GPG anahtarlarınızın kilidini otomatik olarak açma yeteneğine sahiptir. Bunu, web siteleri, GPG anahtarları, SSH anahtarları vb.Gibi şeylerin şifrelerini içeren bir şifre anahtarlığı koruyarak yapar. Bu şifre anahtarlığı daha sonra kendi şifresiyle korunur. Böylece kilidini açarsınız ve gnome anahtarlık diğer her şeyin kilidini açar.
Ek bir bonus olarak, gnome-keyring-daemon'un şifresi kullanıcı şifrenizle eşleşirse, giriş yaptığınızda anahtarlığın kilidi otomatik olarak açılır.


Yapılandırma

Bu nasıl çalışır? Sadece gnome-keyring-daemon ve seahorse kurun. Paket sizin için tüm sistem yapılandırmasını yapmalıdır. Sadece emin Başka anahtarlık cini veya GPG ajan başlamayacağız olun . Hangisi en son başlarsa "kazanır" ve gnome anahtarlığı PAM yığınında başlar, çok erken.

GPG anahtarlarınız depolanırsa ~/.gnupg, bunları otomatik olarak alır ve onlar için GPG aracısı olarak görev yapar. Aynı saklanan SSH anahtarları için de geçerli~/.ssh

Özel anahtarı ilk kez kullanmaya çalıştığınızda, şuna benzer bir iletişim kutusu alırsınız: (Basit bir komut satırı ile tetikledim gpg -d myfile.gpg) anahtarlık kilidini
Sadece "Giriş yaptığımda bu anahtarlığın kilidini otomatik aç" ı seçin

Şimdi gerçekten denizatı hakkında konuşmadık. Çünkü kesinlikle gerekli değildir. Bütün bunlar sadece düzenli gnome-keyring-daemon ile yapıldı. Ancak denizatı ile tüm anahtarlarınızı ve anahtarlıklarınızı görüntüleyebilir ve yönetebilirsiniz. Merkezi kimlik doğrulama (LDAP) kullanıyorsanız, "oturum açma" anahtarlığındaki parolayı değiştirmek için oturum açma parolanızı değiştirdiğinizde bunu kullanmanız gerekir.

denizatı - gpg tuşları


Diğer şifreler

Daha önce de belirtildiği gibi, gnome-keyring-daemon web sitesi şifrelerini de saklayabilir. Chrome'u en son kontrol ettiğimde bunu destekliyor, ancak firefox desteklemiyor. Ancak çalışmasını sağlamanın bir yolu var.
Varsayılan olarak 2 anahtar, "giriş" anahtarlığı ve "varsayılan" anahtarlığınız olur. "Varsayılan" anahtarlık varsayılan değerdir (dolayısıyla ad). Ancak ayrı bir anahtarlık olduğundan, otomatik olarak kilidi açılmaz. Denizatı'nda, "login" anahtarlığına sağ tıklarsanız, "varsayılan olarak ayarla" seçeneği vardır. Bunu seçin, şifreler için kullanılmaya başlayacaktır. Ben şahsen sadece "varsayılan" birini silmek ve her şey için "giriş" kullanın.


Çok kötü bir gnome kullanıcısı değilim. Yaptım sudo apt-get remove gnupg-agentve sudo apt-get install gnome-keyring seahorse. Ardından /etc/X11/Xsession.d/999gnomekeyring, aşağıdaki içeriğe sahip bir dosya oluşturun . eval $(/usr/bin/gnome-keyring-daemon --start --components=gpg,pkcs11,secrets,ssh) export GNOME_KEYRING_CONTROL GNOME_KEYRING_PID GPG_AGENT_INFO SSH_AUTH_SOCK(Aksi takdirde gnome-keyring KDE'de başlamazdı.) Şimdi, çalıştırdığımda gpg -d myfile.gpgparola istenecek ve önbelleğe alınacak, ancak bu iletişim kutusu ile hiç istenmedim .
adrelanos

(Bu kötü, çünkü başladığım yere geri döndüm. İmza anahtarı ayrı ayrı önbelleğe alınacak.) (Değerlendirme ve ihracat hattı arasında yeni bir satır var, buradaki yorum işaretlemesi ile mümkün değil.)
adrelanos

Masaüstü yöneticim için de gnome kullanmıyorum. Gerekli değil. Gnome, masaüstü yöneticilerinden çok daha fazlasını yapar. Bir şey eklemeniz gerekmemelidir /etc/X11/Xsession.d. Bunun PAM yığınında yapılması gerekiyordu. session optional pam_gnome_keyring.so auto_startİçindeki bir veya daha fazla dosyaya giriş yapmanız gerekir /etc/pam.d. Ne yazık ki debian kullanmıyorum bu yüzden hangisini bilmiyorum. Eğer bu orada değilse, sorun budur.
Patrick

Ekleyerek olmadan /etc/X11/Xsession.d, ps aux | grep gnomegnome-anahtarlık-cin Başlamak etmediğini gösterir. (Yine de, kaldırıldı.) /usr/share/doc/libpam-gnome-keyring/README.DebianDiyor If you want to start gnome_keyring from another display manager, you need to add the following lines to the corresponding /etc/pam.d/?dm file: auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start(yeni satırlar se yorumlarla kaldırıldı). Bunu ekledi /etc/pam.d/kdm, kdm yeniden başlatıldı. Ajan yükü yok, hiçbiri mevcut değil.
adrelanos

Kayboldum. Eğer kullanıyorsanız kdmve koyarsanız /etc/pam.d/kdm, bunu yapmalıydı. Hala bu rotayı takip etmek istiyorsanız önerebileceğim tek şey günlükleri kazmaktır. Sahte umut için özür dilerim, bunun sizin için basit bir çözüm olacağını düşündüm.
Patrick

0

Bazı araştırmalar yaptım ve sonuç benim için şaşırtıcı ama basit:

Ne zaman bu şekilde adlandırılan gpgiletişim kurmaz gpg-agent hiç ! gpgtüm bu işlemleri kendi başına yapabilir.

Ancak gpg-agentbir şeyin olduğunu bile bilmiyorsa, daha önce bilmediği bir parolayı neredeyse bilemez.


Görünüşe göre bir yol keşfettim, bunun nasıl çözülemeyeceği.
adrelanos

Orijinal sorum hala açık. (Ki Can I enter my gpg password just once and unlock all my sub keys (signing, decryption, authentication)?) umarım şifreyi içine gpg-agentveya içine gpg-connect-agentbir şekilde borulama mümkündür.
adrelanos
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.