SDB:YOU or RPM Report Problems Verifying Package Signatures

Şuraya atla: kullan, ara


Belirti

İmza onaylanamadığı veya rpm tarafından NOKEY belirtildiği için, YaST Online Update (YOU) - YaST Çevrimiçi Güncelleme -, bir paketi güncelleyemediğini bildiriyor,

Örneğin, YOU şunu bildirmektedir:

ERROR(You:RPM has invalid signature.)

veya rpm aşağıdaki gibi bir mesaj gönderir:

warning: /tmp/man-pages-1.67-1.10.noarch.rpm: V3 DSA signature: NOKEY, key ID 9c800aca

Arka plan: paket imzaları

SUSE LINUX'da kullanıldığı gibi, RPM paket yönetim sistemi de sanal imza [wikipedia] tarafından dağıtılıp, GNU Privacy Guard [wikipedia] tarafından uygulanan RPM paket dosyasının güvenilir bir kaynak tarafından(Novell/SUSE) üretildiğini ve bozulmadığını (kazara - örneğin indirme sırasında veri bozulması- veya kasten bozulma) onaylamak için kullanılır.

RPM paket yönetim sisteminin arka planı ve sanal imzaların kullanımı hakkında ayrıntılı bilgi için Maximum RPM kitabını öneririz.

Olası Nedenler

RPM imzalarına ilişkin sorunların başında hasarlı indirme işlemi gelmektedir. Hasarlı indirmenin pek çok olası sebebi vardır; örneğin basit bir iletim hatası veya içerik değiştiren bir proxy (mesela anti-virüs yazılımı, RPM dosyasına virüs bulaştığını düşünebilir). Bu makale bu durum ile ilgili değildir. Hasarlı indirme işlemini geçtiğinizi varsayıyoruz.

Bu durumda, daha derinde yatan bir sebep vardır: RPM paket yönetim sistemi paket imzaları için hangi açık anahtarların güvenilir olduğunu unutmuş olabilir.

Arka plan: RPM sürümleri

Pek çok Linux yazılımında olduğu gibi, RPM paket yönetim yazılımı da halen geliştirilmektedir. RPM sürüm 3 (SLES8, SLSS ve SLOX içinde kullanıldı) ile RPM sürüm 4 (SLES9, SUSE 9.3 ve SUSE Linux 10.x içinde kullanıldı) arasında imzaları ve anahtarları tutma komutları açısından önemli farklılıklar vardır. Sisteminizin hangi RPM sürümünü kullandığından lütfen emin olun (emin olamadığınız durumda, rpm -q rpm komutu ile kontrol edin) ve daha sonra uygun bölümleri takip edin.

Sebebin Çözümlenmesi (RPM sürüm 4)

RPM sistemi, SUSE RPM paketlerine girebilmek için Novell/SUSE'nin kullandığı anahtarları bilmelidir. Bu, aşağıdaki komutun çıktısının incelenmesiyle denetlenebilir.

rpm -qa 'gpg-pubkey*' | sort

Doğru çıktı SUSE ürününe göre değişir:

SLES9 için, çıktı en azından şu iki anahtarı içermelidir:

gpg-pubkey-3d25d3d9-36e12d04
gpg-pubkey-9c800aca-40d8063e

SUSE 9.3 ile bir anahtar daha orada olmalıdır:

gpg-pubkey-0dfb3188-41ed929b
gpg-pubkey-3d25d3d9-36e12d04
gpg-pubkey-9c800aca-40d8063e

RPM sistemi düzgün çalışmadığında, farklı hatta boş bir çıktı üretecektir.

Çözüm (RPM sürüm 4)

Güvenilir bir ortamdan Novell/SUSE açık anahtarlarını aşağıdaki gibi tekrar elde edin:

  • Yükleme ortamınızın ilk CD'sini /mnt altına yerleştirin.
  • rpm --import /mnt/gpg-pubkey-3d25d3d9-36e12d04.asc
    komutunu çalıştırın.
  • rpm --import /mnt/gpg-pubkey-9c800aca-39eef481.asc
    komutunu çalıştırın.
  • Eğer /mnt/gpg-pubkey-0dfb3188-41ed929b.asc varsa,
    rpm --import /mnt/gpg-pubkey-0dfb3188-41ed929b.asc
    komutunu çalıştırın.
  • RPM'nin anahtarları doğru indirdiğini denetim için
    rpm -qa 'gpg-pubkey*' | sort
    komutunu çalıştırın ve çıktının yukarıda anlatılanlarla aynı olup olmadığını denetleyin.
  • Eğer pm</tt> satırı, bu çıktıyı üretmediyse (yani çıktı boşsa), şu komutu çalıştırın
    rpm --rebuilddb
    ve anahtar ithal sürecini tekrar edin (rpm --import ..) ardından tekrar denetleyin.

Sebebin Çözümlenmesi (RPM sürüm 3)

Burada da, RPM sistemi, SUSE RPM paketlerine girebilmek için Novell/SUSE'nin kullandığı anahtarları bilmelidir. RPM sürüm 4'te anahtarlarla doğrudan iletişim kurabilen komutlar olmasına rağmen, RPM sürüm 3 için böyle komutlar yoktu, o yüzden gerçek komutlar çok farklıdır.

RPM için anahtarlar sırasıyla çalıştığında, aşağıdaki komut:

gpg --no-options --no-default-keyring --keyring /usr/lib/rpm/gnupg/pubring.gpg --list-keys

aşağıdakine benzer çıktılar üretmelidir

/usr/lib/rpm/gnupg/pubring.gpg
------------------------------
pub 1024D/C58B7883 2002-09-03 UnitedLinux Package Signing Key
sub 2048g/797B62F9 2002-09-03 [expires: 2007-09-02]


pub 2048R/3D25D3D9 1999-03-06 SuSE Security Team

pub 1024D/9C800ACA 2000-10-19 SuSE Package Signing Key
sub 2048g/8495160C 2000-10-19 [expires: 2006-02-12]

RPM sistemi düzgün çalışmadığında, farklı veya boş çıktı üretilecektir.

Çözüm (RPM sürüm 3)

Güvenilir bir ortamdan Novell/SUSE açık anahtarlarını aşağıdaki gibi tekrar elde edin:

  • Yükleme ortamınızın ilk CD'sini /mnt altına yerleştirin.
  • gpg --no-options --no-default-keyring --keyring /usr/lib/rpm/gnupg/pubring.gpg --import /mnt/pubring.gpg
    komutunu çalıştırın.
  • gpg --no-options --no-default-keyring --keyring /usr/lib/rpm/gnupg/pubring.gpg --list-keys
    komutunu tekrar çalıştırın ve anahtarların, RPM'nin kullandığı anahtar halka içine yerleştirilip yerleştirilmediğini kontrol edin.
  • tt>fatal: /usr/lib/rpm/gnupg/trustdb.gpg: invalid trustdb</tt> benzeri bir hata mesajı alırsanız
    rm -f /usr/lib/rpm/gnupg/trustdb.gpg
    yapın ve anahtar ithal etme işlemini tekrarlayıp, ardından tekrar kontrol edin.

Her ürün için anahtar

Lütfen, mümkün olduğunca güvenilir ortamlardan anahtarları almaya çalışın. Bu sayfada bulunan bağlantılar, güvenilir bir ortam bulunamadığı zaman son seçenek olarak kullanılmalıdır.

SLES10 (RC3) ve SLED 10 (RC3)

SUSE Linux 10.1

SUSE Linux 10.0

SLES9 ve OES/Linux


Benzer/İlgili sorunlar

RPM paket dosyalarının dışında YOU yığın bilgi dosyalarının imzalarının onaylanmasında da benzer bir sorun bulunmaktadır; bu sorun SDB:YOU Reports Problems Verifying Patch Signatures makalesinde tartışılmıştır. <keyword>YOU,rpm,signature,key,verify,verification</keyword>