GPG aracısı nasıl çalışır?


31

Benim gpg.conf dosyamda yazan bir çizgi var use-agent.
Bunun bir daemon olan gpg aracısını ifade ettiğini biliyorum. Man sayfasında "gpg-agent, gizli (özel) anahtarları herhangi bir protokolden bağımsız olarak yöneten bir servistir. Gpg ve gpgsm için ve diğer birkaç yardımcı program için arka uç olarak kullanılır."

Bunun ne anlama geldiğini gpg bağlamında açıklayan var mı? Gpg-agent'ın amacı nedir?

Şu anda GPG 1.4'üm var.

  1. Ajanın çalışıp çalışmadığını nasıl söyleyebilirim? Aslında gpg aracısının temel GPG 1.4 paketi ile birlikte yüklenip yüklenmediği konusunda net değilim.
  2. Çalışmıyorsa nasıl başlatabilirim?
  3. Çalışıyorsa nasıl durdurabilirim?

Yanıtlar:


38

Gpg-agent, arka planda çalışan (bir arka plan programı ) ve GPG gizli anahtarlarını bellekte saklayan bir programdır . Bir GPG işlemi anahtara ihtiyaç duyduğunda, çalışan gpg-agent programına bir soket ile temas eder ve anahtarı ister. Aracı işlemin anahtarı varsa, gpg'ye sağlar. Olmazsa, şifreli anahtarı anahtarlığınızdan yüklemeye çalışır ve sizden anahtarın parolasını sorar. Aracı şifreyi çözülmüş anahtarı edindikten sonra, onu gpg işlemine geçirir. GPG anahtarlarına ek olarak, Gpg aracısı SSH anahtarlarını benzer şekilde saklayabilir ve SSH ssh-agentile birlikte gelen program gibi SSH işlemlerini sağlayabilir .

Bir anahtar ajan kullanmanın asıl amacı, anahtarınızı her kullanışınızda parolanızı yazmak zorunda kalmamanızdır. Aracı, anahtarı bir zamandan diğerine hafızada tutar. GPG'nin kendisi bunu yapamaz, çünkü işlem bittikten sonra işlem sona erer.

Bir anahtar aracının yapabileceği diğer bir şey, uzak bir makinede çalışan GPG'nin yerel aracıda anahtarlar elde etmesine izin vermektir (bu, onları yerel bir dosyadan yükleyebilir ve parolanızı isteyebilir). Gpg-agent bunu henüz yapamaz, planlanmış bir özelliktir . SSH çok uzun süre ajan nakliyesi yaptı. (Bu, SSH anahtarları için gpg-agent kullanmamak için bir nedendir.)

GPG 1.x veya 2.0.x, GPG_AGENT_INFOdeğişken ayarlandığından dolayı aracının çalıştığını bilir . Bu değişken, aracıyla iletişim kurmak için soketin konumunu ve ayrıca ajanın işlem kimliğini içerir. GPG 2.1 her zaman ajan soketini yerleştirir ~/.gnupg. GPG 2.x, biri çalışmıyorsa her zaman bir aracı işlemi başlatır.

Aracıyı sadece çalıştırarak başlatabilirsiniz gpg-agent. Bir ajan sürecini oturumunuzun bir parçası olarak tutmak istiyorsanız, oturum yöneticinizin çağrısını yerine gpg-agent my-session-manager; bazı dağıtımlar bunu otomatik olarak ayarladı. GPG aracıyı otomatik olarak başlatacak ve GPG 2.1 ayrıca bir ortam değişkenine ihtiyaç duymadan çalışan bir aracı bulacaktır, bu nedenle GPG'nin daha eski bir sürümünü kullanmadığınız veya aracı başka türler depolamak için kullanmadığınız sürece bu şekilde başlatmanız gerekmez. SSH gibi

Sen ajan gönderebilir komutları ile gpg-connect-agentkabuk komutu. Aracı işlemini öldürmek için killkomutu gönder (veya bir sinyal gönder).

Gpg-agent GPG ile birlikte gelir. Bazı dağıtımlar ayrı olarak paketler.


6
"Bir GPG işlemi anahtara ihtiyaç duyduğunda, çalışan gpg-agent programına bir soket üzerinden temas eder ve anahtara ister. Ajan işlemi anahtara sahipse, gpg sağlar." Biraz yanıltıcı. Aracı, müşteri işlemine bir anahtar sağlamaz. Bunun yerine, istemci işlemi adına, anahtarı kullanarak eylemler gerçekleştirir. (Müşteri aracıya imzalayacak, şifreleyecek ya da şifresini çözecek bir şey sağlar ve aracı yapar.) Bir aracı kullanırken, SSH ve GPG istemci yazılımınız asla gerçek anahtara erişemez.
Peter Samuelson,

3
"Gpg-agent bunu henüz yapamıyor, planlanmış bir özellik. SSH'nin çok uzun bir süredir ajan iletmesi vardı. (Bu, SSH anahtarları için gpg-agent kullanmamasının bir nedenidir.)" Çok doğru değil. gpg-agent, SSH agent yönlendirme ile iyi çalışır. Her gün kullanırım. SSH müşterisi yönlendirmeyi ele alıyor, gpg-agent aslında buna dahil değil. Desteklenmeyen, GPG'nin kendisiyle bir ajanla uzaktan konuşmasıdır.
Peter Samuelson,
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.