SSH: <host> sunucusunun orijinalliği kurulamadı


77

Bu mesaj ne anlama geliyor? Bu potansiyel bir problem mi? Kanal güvenli değil mi?

Yoksa bu sadece yeni bir sunucuya bağlanırken her zaman görüntülenen varsayılan bir mesaj mı?

Geçmişte SSH kullanırken bu mesajı görmeye alışkınım: Giriş bilgilerime her zaman bir şifre ile normal yoldan girdim ve özel / genel anahtarlardan (çok daha güvenli) kullanamadığım için iyi hissettim kısa bir parola yerine). Fakat bu sefer bitbucket ile olan bağlantım için ssh ile ortak bir anahtar oluşturdum ama yine de mesajı aldım. Sonunda parola isteminin özel anahtarın şifresini çözmek için farklı, ek bir güvenlik önlemi olduğunun farkındayım.

Birisinin bu "orijinallik kurulamaz" mesajı ile neyin kastedildiğine dair güzel bir açıklama yapmasını umuyorum.

The authenticity of host 'bitbucket.org (207.223.240.181)' can't be established.

RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'bitbucket.org,207.223.240.181' (RSA) to the list of
known hosts.
Enter passphrase for key '/c/Users/Steven/.ssh/id_rsa':

2
Bu gerçekten, "tam olarak ne demek istediğini" mesajlarından biridir. sshGerçekten konuştuğunu söylemenin bir yolu yok demek bitbucket.org. Bunu bilmesi için bir yol yapılandırdıysanız, o zaman çalışmıyor. Yapmadıysan, yapmadığını söylüyorsun.
David Schwartz

Yanıtlar:


68

Size daha önce bu sunucuya hiç bağlanmadığınızı söylüyor. Bunu bekliyor olsaydın, tamamen normaldi. Paranoyaksanız, alternatif bir kanal kullanarak anahtarın sağlama toplamı / parmak izini doğrulayın. (Ancak, ssh bağlantınızı yönlendirebilen birinin bir web tarayıcısı oturumunu da yönlendirebileceğini unutmayın.)

Bu ssh kurulumundan önce bu sunucuya bağlandıysanız, ya sunucu yeni bir anahtarla yeniden yapılandırıldı ya da birisi sunucunun kimliğini bozuyor. Ortadaki adam saldırısının ciddiyeti nedeniyle, bu ihtimal hakkında sizi uyarıyor.

Her iki durumda da birine güvenli bir şifreli kanalınız var . Parmak izine karşılık gelen özel anahtarı olmayan hiç kimse 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40gönderdiklerinizi çözemez.

Kendinizin kimliğini doğrulamak için kullandığınız anahtarın önemi yoktur ... çalan bir sahte sunucuya kimlik doğrulama bilgilerini göndermek istemezsiniz ve bu nedenle bir parola kullanıp kullanmayacağınıza bağlı olarak herhangi bir değişiklik beklememelisiniz. giriş yapmak için özel anahtar. Sadece bu süreçte henüz bu kadar ilerlemediniz.


Öyleyse, kötü niyetli bir üçüncü taraf olsa ve mesajı reddetsem de, yapacağım tek şey ona açık anahtarımı göndermek ve verilerimin şifresini çözemez mi? Şimdi, verilerimin tehlikeye girmesinin tek yolu, (1) özel anahtarımın tehlikeye atılması veya (2) bitbucket sunucularının tehlikeye atılması veya (3) bitbucket hesabımın riske atılmasıdır. Giriş yapma denemelerini sınırladıkları sürece (ki yapmazlarsa gerçekten şaşırırdım), bu noktada paranoyak olmak için pek fazla neden yok mu?
Steven Lu,

10
@Steven: Ona açık anahtarını göndermiyorsun, zaten onda var. Yaptığınız şey, bir meydan okumayı doğrulamak için özel anahtarınızı kullanmaktır ... eğer siz olduğunuzu iddia eden gerçek bitbucket.org ile bağlantı kurarsa, gerçek bir meydan okuma aldı ve bu meydan okumayı sizi zorlarken kullandıysa, sizi kandırabilir. Ona gerçek bitbucket.org'daki hesabınıza erişmek için kullandığı geçerli bir yanıt gönderiyor. Hâlâ özel anahtarınız yok, bu yüzden gelecekteki bir zamanda veya anahtarın kilidini açan başka herhangi bir kaynağa giriş yapamaz, ancak bir giriş oturumu vardır.
Ben Voigt

"Sahte bir sunucuya kimlik doğrulama bilgisi göndermek istemezsiniz" derken cevabımı kastetmiştim.
Ben Voigt

2
"Paranoyaksanız, alternatif bir kanal kullanarak anahtarın sağlama toplamı / parmak izini doğrulayın." Paranoid (ve kayıt için), Github en parmak izi üzerindedir help.github.com/articles/generating-ssh-keys ve bitbucket en belirtilen confluence.atlassian.com/display/BITBUCKET/...
sundar

1
@BenVoigt Evet, anlıyorum ki, gerçek paranoyak, elbette ki ilgisiz bir ağ üzerinden bu sayfalara ulaşacak ya da belki de merkez büroya uçup şahsen parmak izini alacak :)
sundar

19

Bazı ticari sırları takas etmek için birisiyle tanıştığınızı söyleyelim. Danışmanınız size daha önce hiç bu kişiyle tanışmadığınızı ve bir sahtekar olabileceğini söyler. Ayrıca, onunla yapılacak bir sonraki toplantılar için danışmanınız sizi artık uyarmayacak. Mesajın anlamı budur. Kişi uzaktaki sunucudur ve danışmanınız ssh istemcisidir.

Onunla sır paylaşmadan önce kişinin kimliğini iki kere kontrol etmenin paranoyak olduğunu sanmıyorum. Örneğin, bir resmini içeren bir web sayfasını açıp önünüzdeki yüzle karşılaştırabilirsiniz. Ya da kimliğini kontrol et.

Bitbucket sunucusu için farklı, daha güvenilir bir bilgisayar kullanabilir ve yüzünün resmini çekebilir ve daha sonra onu şu an kullandığınız bilgisayarla karşılaştırabilirsiniz. kullanın:

 ssh-keyscan -t rsa bitbucket.org | ssh-keygen -lv -f -

Eğer yüzleri maç, dosya örneğin anahtarı ekleyebilir ~/.ssh/known_hostsile (birçok Linux dağıtımlarında standart konum):

ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts

ve ssh müşterisi onun yüzünü bildiği için sizi uyarmayacak . Bağlandığınız zaman yüzleri karşılaştıracak . Bu çok önemli. Bir sahtekâr durumunda (örneğin, ortadaki adam saldırısı), ssh müşterisi bağlantıyı reddedecektir, çünkü yüz değişmiş olacaktır.


Bu cevap çok yararlı
010110110101

4
Bu kabul edilen cevap olmalı: ssh-keyscan -t rsa -H bitbucket.org >> ~/.ssh/known_hosts Teşekkürler İvan!
Rod,

1
@Rod: Hem tamamen gereksiz olan bir komuta dayanarak kabul edilen yanıtı seçersiniz ( known_hostssoruda daha önce belirtildiği gibi orijinal uyarıya sadece "evet" yazarak değiştirebilirsiniz ) ve tehlikeli (eklemek istediğiniz anahtar dosya mutlaka baktığınızla aynı değildir, çünkü iki kez getirdiniz!)?
Ben Voigt

@BenVoigt, bu çözümün "evet" yazmasının bu çözümün tamamen kodlanabileceği anlamına gelmediğini sağlayın. Sanırım çoğu insan "(evet / hayır)?" A nasıl cevap verebileceğini anlayabilir. Komut istemi. Bu problemi, insan müdahalesi olmadan (bir sunucu kurulum betiği için) çözmeden çözmeye çalışırken bu soru-cevap ile karşılaştım. Heyecanımda, OP'nin sorusunun benimkinden biraz farklı olduğunu fark etmedim, ama IMO bu hala konudaki en yararlı / açık olmayan cevap.
Rod,

@Rod: Hayır, kullanışlı değil. Güvenliğinizi azaltmak kötüdür. Güvenliğinizi azaltmanın daha hızlı yollarını bulmak, işe yaramazlığın tam tersidir.
Ben Voigt

5

Sadece known_hostsmetin dosyasını oluşturmak zorunda kaldım .~/.ssh

sudo vim ~/.ssh/known_hosts
sudo chmod 777 ~/.ssh/known_hosts

Bunu yaptıktan sonra ana bilgisayarı ekledi ve mesajı bir daha hiç görmedim.


Bunun gerçekten bir şeyleri değiştirdiğini sanmıyorum. Sunucunun kendisi değiştiğinde uyarı gösterilir. Örneğin, ilk kez bağlandığınız yeni bir sanal makine sağlıyorsanız. known_hostsDosyanız olsun veya olmasın (doğru izinlere sahip), yeni sunucunun orijinalliğini sormaktan alıkoymaz ... Bir şekilde bu sunucu için pub anahtar imzasını zaten alıp almadıysanız known_hosts, çeki atlamanın normal bir yoludur (çeki sadece "evet" diyerek aynı işlemi gerçekleştirmek genellikle daha hızlıdır)
Steven Lu

Teşekkürler. Ev hayaletleri biliyordum ama uyarı almaya devam ettim. Sadece uyarıların durması için bilinen ana bilgisayarlarda izinleri değiştirmek zorunda kaldım.
ArcaneDominion

6
Lütfen bunu yapma. Ciddi bir güvenlik tehlikesi olabilir. Ana bilgisayar dosyanız yalnızca sizin tarafınızdan yazılabilir olmalıdır. İkinci komut, temel olarak, bilgisayarınızdaki herhangi birinin sunucu kimliklerini aldatmasına izin veriyor.
Stolz

"Sunucunun kendisi değiştiğinde uyarı gösterilir." Veya sunucu daha önce hiç ziyaret edilmemişse.
Rod,

1

Bu mesaj sadece size bu özel ana bilgisayar anahtarını daha önce hiç görmediğinizi söyleyen SSH’dir, bu yüzden düşündüğünüz ana bilgisayara bağlandığınızı doğrulayamaz. "Evet" demeniz, ssh anahtarını known_hosts dosyanıza yerleştirir ve ardından sonraki bağlantılarda, anasistemden aldığı anahtarı bilinen_hosts dosyasındakiyle karşılaştırır.

Bu uyarının nasıl devre dışı bırakılacağını gösteren yığın taşması ile ilgili bir makale vardı, https://stackoverflow.com/questions/3663895/ssh-the-authenticity-of-host-hostname-cant-be-established .


10
Ancak uyarının devre dışı bırakılması önerilmez - bu amaç için çok yararlı güvenlik bilgileri sağlar.
Rory Alsop

1

Başka bir kolay yol var /root/.ssh altındaki bir "config" dosyasına dokunup StrictHostKeyChecking no parametresini ekleyin. Bir sunucuya giriş yaptığınızda bir dahaki sefere, rsa anahtarı bilinen_toplara eklenecek ve "evet" diye sormayacaklar orijinallik onayı için


3
Bu tavsiye edilmez. Durumla başa çıkmak kolay ama doğru değil.
Vikas,

0

Daha önce verilen cevaplardan ayrı olarak (daha önce bu ana bilgisayara bağlanmadınız), mevcut ana bilgisayardan daha önce (o ana bilgisayara) hiç bağlanmadığınız için belirgin bir olasılık vardır; bu sadece psikolojik olarak farklı; ana bilgisayardan (B'ye) bağlandığınızı, gerçekten de ana bilgisayardan (B'ye) bağlanmaya çalıştığınızı düşünüyorsunuz. Bu, örneğin A'dan X'e ilk kez basıldığında ve ardından aynı terminalden hala A'da olduğunuzu düşünerek B'ye ssh yapmaya çalıştığınızda gerçekleşebilir.


(Sağlamak çoğu ortamlar konak B'ye bilir ama X'in değil, ama ajan yönlendirme A ve X arasında yer alırsa da uyarıyı bastırmak olabilir ssh ajan iletme kullanarak acaba ssh, bu yardımcı olur) ve terminal uygulamaları desteği ajan yönlendirme Yalnızca son cihazlarınız için yönetmeniz gereken ssh anahtarlarının sayısını azaltın.
Steven Lu,

0

Benim durumumun şifresinde, giriş ayarlarım değiştiğinden, giriş dizini izinlerim nedeniyle daha az giriş yapılmadı. Sonunda, işte benim için çalıştı. giriş dizini izinlerim

/ Home / username

drwxr----x. 18 username     groupname  4096 May 11 11:52 username

/home/username/.ssh

268823097 drwx------   2 username groupname     29 May 11 11:53 .ssh

/home/username/.ssh/authorized_keys

-rw-r----- 1 username groupname 402 May 11 11:53 authorized_keys
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.