Boş bir parola içeren bir SSH anahtarı kullanmak uygun mudur?


34

Ssh anahtarlarının nasıl yapıldığını ilk öğrendiğimde, okuduğum tüm dersler iyi bir parola seçilmesi gerektiğini belirtti. Ancak son zamanlarda, başka bir makineye ssh ihtiyacı olan bir daemon süreci kurarken, her açılışta kimlik doğrulaması gerektirmeyen bir anahtara sahip olmanın tek yolunun (göründüğü gibi) boş bir anahtar oluşturmak olduğunu keşfettim. passphrase. Öyleyse sorum şu, parola içermeyen bir anahtar kullanmanın endişeleri nelerdir?

Yanıtlar:


38

Parolası olmayan bir anahtar, başka hiç kimsenin bu anahtara ulaşamayacağına (kimseye erişim sağladığı kaynaklara ulaşamayacak olan) güvenmemelidir. Bu nedenle, anahtarın yanındaki bir makineye erişim izni verirse ve her iki makinede de aynı düzeyde elektronik ve fiziksel güvenlik varsa, bu gerçekten önemli bir şey değildir.

Öte yandan, anahtarınız düşük güvenlikli bir makinedeyse (belki de güvenilmeyen birçok kullanıcısı varsa, fiziksel olarak kolayca erişilebilirse veya düzeltme rejimiyle güncel tutulmazsa), muhtemelen orada parola içermeyen tuşları saklamak istemez.

Nihayetinde kurulumunuza güveniyor ve bunu yapmanın risklerini / maliyetlerini tartıyorsunuz - eğer bir saldırganın, anahtarın erişimini sağladığı kaynaktan daha anahtarın erişimini almasının gerçekçi olarak kolay olmadığı konusunda eminiz. , o zaman iyisin. Bu güvenin yoksa, nedenini muhtemelen düzeltmelisin :)


Sadece güvenilen insanlar makineye anahtarlarla erişebilecekler, bu yüzden sorumun cevabını sanırım. Teşekkürler.
mozillalives

11

Başka bir çözüm, güvenliği kolaylaştırarak daha da kolaylaşmanızı sağlar, böylece şifrenizi her zaman yazmak zorunda kalmazsınız:

Özel anahtarınızı şifrelemek istiyorsanız, ssh-agentiş istasyonunuzda şifrelenmemiş anahtarı önbelleğe almak için kullanabilirsiniz . şifresi çözülmüş anahtarınızı saklamak istediğinizde ssh-add ~/.ssh/id_rsa, özel anahtarınız ne şekilde adlandırılırsa çalışırsınız . parola girmeniz istenecek ve şifresi çözülen anahtar siz oturum açana, öldürme ssh-agentveya kapatma işlemine kadar ssh bağlantılarınız için uygun olacaktır .

yapabilecekleriniz killile tuşları saklanır ssh-agent -kve anahtar ile bellekte olmak için bir ömür boyu atayabilirsiniz ssh-agent -t [seconds]böylece örneğin; anahtarınızın sonsuza dek şifresi çözülmesini istemiyorsanız, ancak ana bilgisayarlarınızla ilgili çok fazla şey yapmak istiyorsanız, zaman aşımını 5-10 dakikaya ayarlayabilirsiniz. bu yüzden anahtarınızın şifresini sürekli girmek zorunda kalmazsınız.

yine, tüm bunların / iş istasyonunuzun / güvenliğinden ne kadar emin olduğunuzla ilgili olması gerekir; bu, erişimi olan tek kişi sizseniz ve oldukça güvenli bir yerel şifreniz varsa ve kendinize istismarları ve rootkit'leri davet edin, parola içermeyen özel anahtarınız oldukça güvenlidir.

eğer benim gibiyseniz ve özel anahtarınızı bir başparmak sürücüde tutuyorsanız, kesinlikle özel bir anahtar (iş istasyonumda kullandığım ayrı bir anahtar olsa bile) şifrelemek isteyeceksiniz. anahtarımı kaybediyorum, kolayca baş parmağımın genel anahtarını sunucumun ~/.ssh/authorized_keyslistesinden kolayca kaldırabilirim.

önceki bir cevaba cevabınız, sadece güvendiğiniz kişilerin makineye tuşlarıyla erişebildiğini söylediniz. Özel anahtarınızın, yaptığınız şey için bağlı olduğunuz sunucuda olması gerekmediğini açıklığa kavuşturmak istiyorum. yalnızca genel anahtarınızın sunucuda olması gerekir ve bu sorun değil, bu yüzden bir 'genel' anahtar.

oh, söylemeyi unuttum; i başlatmak ssh-agenti i ile saklamak aksi de-kriptolanmis tuşları X başlattığınızda ssh-addfarklı aracılığıyla tutulmaz xtermoturumları ve ben zorunda yeniden girin şifreyi her zaman i kapatmak xtermi başlattı ssh-addbenim de. ~/.xinitrcdosyasından i var:

if [ -x /usr/bin/ssh-agent ]; then
   eval $(/usr/bin/ssh-agent)
fi

ssh-agent, çalıştırıldığında ayarlanması gereken bazı ortam değişkenleri döndürdüğü için ssh-agentçağrılana çağrı evalyaptım ~/.xinitrc, ortam değişkenleri X oturumu boyunca sabittir.


Evet - sadece genel anahtarı yüklemem gerektiğini biliyorum. Sadece bir sunucuyu diğerine bağlıyorum, bu yüzden bahsetmiştim. Fakat bu açık ve düşünceli cevabı yazdığınız için teşekkür ederiz.
mozillalives

peki, kullanırsanız ssh-agentve kullanırsanız ssh -A -i privkey user@host, ssh agent yönlendirmesine izin verir, bu da bir anahtarını ilk sunucuya koymadan ilk sunucudan bir sunucuya erişmenizi sağlar. ssh anahtar iletimi etkin olmasa bile, ssh zincirleme önerilmemektedir ssh -Ave kendi güvenlik endişeleri vardır. iş istasyonunuzdaki anahtar parola olmadan, sunucudaki anahtarın şifrelenmemesinin bir nedeni yoktur.
cpbills

3

Web sunucuları için SSL özel anahtarları hakkında sorduğum benzer bir soruya bakabilirsiniz . Temel olarak, üç seçenek vardır:

  1. Dosya sistemi izinleriyle anahtarı koruyun.
  2. Parola korumalı bir anahtar kullanın ve anahtarı her yeniden başlatma işleminde manuel olarak girin.
  3. Parola korumalı bir anahtar kullanın ve yeniden başlatmayı otomatikleştirmek için anahtarı dosya sisteminde saklayın.

Her biri kusurlu, bu yüzden en çok neden korktuğunuza bağlı.


1

Parola gerektirmeyen anahtarlar gerektiren otomatik erişim için, çalıştırılabilen komutu sınırlamak için her zaman yetkili_ anahtarların seçeneklerini kullanın (bkz. Sshd (8)).

Genellikle, uzak ucunda, tam olarak izin verilmesini istediğim işi (veya işleri - parametreleri inceleyebilir) yapan, dikkatlice yazılmış bir komut dosyası veririm.

Daha sonra, bu anahtarla bağlantı kurabilen IP adreslerine de kilitledim (% 100 kusursuz değil, aynı zamanda komut kısıtlamasına da uygun.)


Mükemmel nokta - korunmasız tuşları kullanmayı gerekli görürseniz, yapabileceğiniz en iyi şey kilitlemek!
MikeyB

1

Sizden başka hiç kimse anahtara erişmediği sürece, bir parola gerektirmez. Aslında, otomatik yazılım tarafından kullanılan tuşlarda parola kullanamazsınız.


0

Herhangi bir otomatik işlem yapmak için ssh kullanmak istiyorsanız - özellikle Nagios kontrollerini düşünüyorum - o zaman muhtemelen bir parola kullanmak istemezsiniz.

Bu durumda muhtemelen bunu bir LAN dışında kullanmazsınız ve anahtarı işlemi yapan sunucuda güvenli bir şekilde saklarsınız.

SSH'yi tartışan çoğu öğretici, harici bir ağdan, muhtemelen güvensiz bir bilgisayardan oturum açan ve bu durumda tavsiyenin sağlam olduğu bir kişiyi bekliyor olacak.

Temel olarak, bilmemek için iyi bir neden olmadığını bilmediğiniz sürece, bir parola oluşturun. Her seferinde şifrenizi yazmak için çok tembel olmak sizin için yeterince iyi bir neden olabilir :-)


Harici bir ağdan giriş yapmış olsalar bile, bu nasıl bir fark yaratır? Yalnızca istemci bilgisayarın güvenliği önemlidir, parola istemci tarafında ele alınır, değil mi?
njsg

İstemci dizüstü bilgisayarınız çalınana ve herhangi birinin SSH anahtarını iptal etme şansına sahip olmadan önce çevrenizi ihlal etmek için kullanılmasına kadar. Anahtardaki bir parola tuşları iptal etmek için daha fazla zaman verir.
dunxd

Yani, dediğim gibi, "Yalnızca istemci bilgisayarın güvenliği önemlidir".
njsg
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.