Yeni ortamların daha kolay kurulumu için id_rsa.pub yayınlanıyor mu?


20

Parolasız SSH'nin yeni makinelerde ve ortamlarda kurulumunu kolaylaştırmak için id_rsa.pubdosyanın (anahtar çiftinin yalnızca ortak yarısı) web'de bir yerde yayınlanamamasının bir nedeni var mı? Örneğin bir dotfiles GitHub deposunda.

Farkındayım:

  • id_rsadosya (anahtar çiftinin özel yarısı) dikkatlice korunmalıdır ve
  • anahtar çifti bir parola ile korunmalıdır

Ancak aramalarım, buna izin verildiği veya teşvik edildiği konusunda açık bir tavsiyede bulunmadı.

Meraktan, aynı tavsiye parola olmadan bir anahtar çifti için geçerli miydi?


2
Genel durumda güvenli olsa da (düzgün oluşturulmuş bir anahtar olduğu varsayılırsa), geçmişte anahtar boşluğunu ciddi şekilde kısıtlayan ve özel anahtarı genel anahtara göre tahmin edilebilir bırakan kusurlar (ünlü Debian OpenSSH hatası ) vardı. Yani her zaman bu risk vardır - SSH keygenizin benzer bir kusurdan muzdarip olmadığını nasıl anlarsınız ?
Bob

2
Bunun için bir mekanizma zaten var: ssh-import-id
MikeyB 26:03

yani id_rsa.pub'ı makineler arasında paylaşabilirsiniz?
Federico

Yanıtlar:


26

RSA, bu ortak anahtarı paylaşmanıza izin vermek için özel olarak tasarlanmıştır, bu nedenle evet, yayınlayabilirsiniz. Bu, RSA sertifikalarına sahip x.509 (ve SSL) çalışma biçimine oldukça benzer.

Dosyayı yayınlamadan önce, aslında ona bakın; orada olması gereken tek şey "ssh-rsa" anahtar kelimesi ve base64 kodlu anahtardır. Bunu ona saklamak isteyebilirsiniz (bunun varsayılanı olduğuna inanıyorum).

Anahtarda bir parola olup olmadığı doğru. Parola özel anahtarı şifreler ve ortak anahtarı etkilemez.

Her zaman olduğu gibi, anahtarınızın yeterince entropik ve büyük olduğundan emin olun. Kırık bir PRNG tarafından üretilirse tahmin edilebilir. Ancak, bunu yayınlamak fazladan bir risk oluşturmaz, çünkü anahtar alanı o kadar küçükse, bir saldırgan doğru anahtar alana kadar numaralandırılmış anahtar alanındaki tüm anahtarları deneyebilir.

-b 4096Birinin genel anahtarınızı özel bir anahtarına çevirmesi normalden daha zor (varsayılan 2048) olacak şekilde 4096 bit anahtar (belirtin ) kullanmanızı öneririm . Bunu yapmak için tek önemli risk budur ve algoritma özellikle pratik yapmak için tasarlandığından çok büyük bir risk değildir.


33

Zaten öyle. :) Github profil URL'nizin sonuna ".keys" ifadesini ekleyin, şöyle:

https://github.com/tjmcewan.keys


Gerçekten ilginç. GitHub bunu ne için açıklıyor?
richardneish

Kolaylık. :) Sonuçta bu ortak bir anahtar - paylaşılması gerekiyordu. Yeni bir ortak çalışanın anahtarını alıp sunucularınıza eklemek artık çok daha kolay. İleri ve geri e-postayı kaydeder.
tjmcewan

Bunu yaptıklarının farkında değildim.
Zeb

1
Github'daki ilginç bulgu için +1.
Raymond Tau

5

Kural olarak, genel proje depolarına kendi özel yapılandırmanızı koymanızı önermiyorum (repo'nun herkes için olduğunu ve yapılandırmanızın sadece sizin için olduğunu varsayarsak , bu sadece biraz kaba), güvenlik etkileri minimumdur.

Tek makul saldırı vektörü, bir şekilde sizi kötü niyetli bir bağlamda tanımlamak için bu ortak anahtarı kullanmaktır . Olabilecek şey benim ötesinde, ancak ortak anahtar özel anahtarı benzersiz olarak tanımlasa da, kökeniyle ilgili herhangi bir ipucu vermiyor.

Muhtemelen geçerli olmayan bir köşe vakası saldırı vektörü var, ancak Debian'ın yanlışlıkla openssl PRNG'yi kırdığı fiyaskoyu hatırlarsanız, etkilenen bir sistemde üretilen herhangi bir ssh anahtarı kolayca tahmin edilebilir ve genel anahtarı ile tanımlanabilir. Yani bu durumda, ortak anahtarı yayın sorun size inebilir. Ya da daha uygun bir şekilde, bu anahtarı herhangi bir şey için kullanmak sizi belaya sokabilir.


vektör 1. parmak izi çarpışma hakkında nasıl? açık anahtarın kendisinden çok daha kısa; vektör 2 mim saldırı gibi "oops sunucu yeniden yüklenmesi gerekiyordu farklı bir anahtar var, ama yine de giriş yapın" ve verilen kullanıcı ortak anahtarları için sahte başarılı kimlik doğrulaması (mümkünse emin değilim)

1

Evet, SSH pubkey'inizi yayınlayabilirsiniz. DNS'deki SSHFP kaydını kullanarak sunucunun parmak izini de yayınlayabilirsiniz ! Bu, örneğin bir sunucunun SSH anahtarını güncellemeniz / değiştirmeniz gerektiğinde gerçekten kullanışlı olabilir.

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.