SSH Sunucusu Parmak İzi nerede üretilir / depolanır?


44

Openssh-server'ı kurdum ve ile bir anahtar yarattım ssh-keygen. Daha sonra bunu yaparak yerel port yönlendirme kullanarak test etmeye çalıştım ssh -L 8080:www.nytimes.com:80 127.0.0.1. Ancak, bu komutun sağladığı anahtar parmak izi, yaptığımda aldığım anahtar parmak izi değil ssh-keygen -l. .Ssh dizinimi silsem bile, yine de oluşturduğum gibi aynı parmak izini alıyorum ssh-keygen. Sistemimde başka bir anahtar var mı? Bu anahtar nerede? Openssh-server tarafından kullanılmak üzere bu anahtarı nasıl seçebilirim?

Yanıtlar:


58

Bir SSH seansı yaptığınızda, iki farklı anahtar çifti (her bir çift için parmak izi ile) söz konusudur. Bunlardan biri depolanan kullanıcının anahtarıdır ~/.ssh. Kullanıcının SSH anahtar kimliği bazen başka bir bilgisayara giriş yapmak için kimlik bilgileri olarak kullanılır (anahtar tabanlı giriş yaptıysanız).

Diğeri ise SSH sunucusunun anahtarıdır. Farklı bir sunucuya ilk kez bağlandığınızda parmak izini gördüğünüz anahtar budur. Bu anahtarın kimliği, kullanmak istediğiniz SSH sunucusunda oturum açtığınızdan emin olmak için kullanılır. Bu, şifreleri kullanıyorsanız önemlidir, çünkü yanlışlıkla bir saldırgan makinesine giriş yapmayı denemek istemezsiniz: Saldırgan, siz yazarken şifrenizi alır. Sonra saldırgan, giriş yaptığınızı düşündüğünüz makineye giriş yapabilir için! (Bu, "ortadaki saldırıdaki adam" olarak bilinir )) Bir SSH sunucusunun, oturum açtığınızda kendini tanımlamak için kullandığı anahtarlar, içinde bulunur /etc/ssh/ve genellikle buna benzer bir adla adlandırılır ssh_host_rsa_key.

Ayarla SSH sunucusunun dosyadaki anahtarı aradığı yeri değiştirebilirsiniz ./etc/ssh/sshd_configHostKey /path/to/host/key

Varsayılan olarak, ssh-keygengeçerli kullanıcı için varsayılan olarak depolanacak bir anahtar oluşturur ~/.ssh. Bir kullanıcı anahtarının ve bir sunucu anahtarının formatı aynıdır; fark, yerleştirildikleri yer ve onlara yöneltilen /etc/ssh/sshd_configbir HostKeyyönerge olup olmadığıdır . Openssh-server paketini kurduğunuzda, otomatik olarak sunucunun kullanması için anahtarlar oluşturur. Bilinmeyen parmak izi olan anahtarların geldiği yer burasıdır. SSH sunucusunun (RSA *) anahtarının parmak izini görmek istiyorsanız, çalıştırabilirsiniz ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub.

* Farklı şifreleme algoritmaları vardır. Her biri farklı bir anahtar kullanır. Yaygın olanlar DSA (zayıf), RSA (eski varsayılan) ve ECDSA'dır (yeni varsayılan).


1
Google, "set ssh fingerprint" için sonuçlar, bu terimler teknik olarak yanlış olsa da şaşırtıcı derecede kötü. İyi ki aralarında buldum.
Bart van Heukelom 14:12

4
Bunun için teşekkürler. Bir not: 'sudo' gerekli değildir, eğer ssh-keygen'i ortak anahtara işaret ederseniz. Yani: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub. Ayrıca, kurulumum için, ssh daemon'un kullandığı RSA anahtarı değil ECDSA anahtarıydı, yani benim çalıştırmam gereken şey buydu ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub.
John,

Eski sabit diskimden ortak anahtarların alınması ve yeni kurulumumda kullanılması, / etc / ssh dosyasının üzerine yazılması ile ilgili herhangi bir sorun var mı? Anahtar bir anahtar değil mi?
Adam

@Adam Ben bunu yaparken hiçbir problem göremiyorum. Uzaktan oturum
açmaya başladığınızda

3
ssh14.04'ten bir ana bilgisayara bağlandığımda , MD5 parmak izini gösteriyor. ssh-keygen16.04'ün MD5 parmak izini göstermesini sağlamak için -E md5seçeneği kullanmanız gerekir .
jarno

14

SSH ana bilgisayar anahtarları, /etc/ssh/genellikle seçmeniz gerekmeyen yerde saklanır . Bu anahtarlar openssh-server paketi kurulduğunda üretildi.

ssh-keygen -l -f /etc/ssh/ssh_host_key.pubHer ortak anahtar için bunu tekrar etmeniz gerekmesine rağmen , tuşların parmak izlerini listeleyebilirsiniz .

 


7

ssh-keygenSunucunuzda SSH parmak izi oluşturmaz. Bu SSH sunucusu tarafından üretilir. ssh-keygenSisteminiz için daha sonra SSH sunucunuza sunucuya düz metin şifresi iletmek zorunda kalmadan erişmek için kullanabileceğiniz bir ortak / özel anahtar çifti oluşturur.

Sunucunuzun parmak izi, birbirinden ayrı oldukları için, oluşturduğunuz ortak / özel anahtar çiftinin parmak izi olarak görünmeyecektir.


3
Sunucunuz için ssh anahtarları üretebilmeniz gerektiğini (söylediklerinizin aksine) yapabileceğinizi, ancak bu amaç için kullanılmaları için doğru yere koymanız gerektiğini unutmayın.
Azendale
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.