SSH bağlantı sorunu “Host key verification failed…” hatası ile

138

LAN'ımdaki başka bir Ubuntu makinesine SSH üzerinden bağlanabiliyorum. Her ikisinde de PC'leri openssh-server 'ı yükledim. ama başka bir Ubuntu bilgisayarından PC'ye SSH üzerinden bağlanamıyorum ve bu hatayı aldım:

  

Ana anahtar doğrulaması başarısız oldu ...

    
sordu Navid 28.05.2011 13:36

13 cevap

162

"Ana makine anahtarı doğrulaması başarısız oldu", uzak ana bilgisayarın ana makine anahtarının değiştirildiği anlamına gelir.

SSH, uzak ana bilgisayarların ana bilgisayar anahtarlarını ~/.ssh/known_hosts olarak depolar. Bu metin dosyasını elle düzenleyebilir ve eski anahtarı kaldırabilirsiniz (hata mesajında ​​satır numarasını görebilirsiniz) veya

tuşunu kullanabilirsiniz.
ssh-keygen -R hostname

(cevabından öğrendim ki Bu mümkün mü SSH'nin bilinen_hosts dosyasından belirli bir ana bilgisayar anahtarını kaldırın? ).

    
verilen cevap elmicha 28.05.2011 15:19
103

Komut istemi ekleme-anayoluna etkileşimli erişiminizin olmadığı bazı uzak / komut dosyalarında çalışıyorsanız, aşağıdaki gibi çalışın:

$ ssh -o StrictHostKeyChecking=no [email protected] uptime

Uyarı: Kalıcı olarak 'hosts.example.com, 10.11.12.13' (RSA) bilinen ana bilgisayarların listesine eklendi.

    
verilen cevap MarkHu 24.07.2013 02:47
10

Ayrıca, bazen seri konsolda çalıştığınız zaman da durum vardır, ardından yukarıdaki komutun ayrıntılı modda kontrol edilmesi -v , size /dev/tty değerinin görünmediğini gösterir.

ssh -v [email protected]

Yukarıdaki örnekte /dev/tty dosyasını kaldır ve /dev/ttyS0 - /dev/tty symlink.

rm /dev/tty
ln -s /dev/ttyS0 /dev/tty

Alternatif olarak, uzak konuma id_rsa.pub ekleyin, bu nedenle şifre sorulmaz ve girişe erişebilirsiniz.

    
verilen cevap Peeyush 27.05.2012 15:01
8

Benim durumumda, bu bir udev sorunundan kaynaklandı - /dev/tty cihaz düğümü yoktu. Benim için çözüm sadece:

sudo mknod -m 666 /dev/tty c 5 0
    
verilen cevap Mark 25.07.2011 22:28
3

Eh, sadece ikinci ubuntu şifre ile anahtar ve değil bağlantı gerektirir.

Bilgisayarınızda sudo dpkg-reconfigure openssh-server kullanmanızı öneriyorum ve sonra düzgün çalışması gerekiyor. Openssh için yapılandırmayı sıfırlar ve varsayılan şifre kimlik doğrulamasına geri dönmelidir.

İkinci olasılık, PC'nizdeki diğer ubuntu'nuz için zaten bir anahtarın var olması ve artık değiştirilmemesidir. Bu durumda, ubuntu'nuzu tanımlayan sorunlu satırı kaldırmak için .ssh/authorized_keys dosyasını düzenlemeniz gerekecektir.

    
verilen cevap MP0 28.05.2011 13:39
3

Bu eski bir iş parçacığı ve ben sadece bu cevapla karşılaştım, sadece bunu çözmek için yaptığım şeyi ekleyeceğim.

ssh-keygen -f "/home/USER/.ssh/known_hosts" -R HOSTNAME

Sadece bana attığı hata mesajını inceledim ve ana bilgisayar listesinden çıkarmak için bu komutu çalıştırmayı söyledi. Bundan sonra şunları yaptım:

ssh-copy-id HOSTNAME

Sunucuya ssh yapana kadar istemleri takip ettim.

    
verilen cevap Hatem Jaber 15.04.2015 18:09
3

Açık terminalde:

ssh -o StrictHostKeyChecking=No -i YourPublicKey.pem [email protected] uptime

Aşağıdaki mesaj veya benzerleri görünecektir:

Warning: Permanently added 'example.com, XX.XXX.XXX.XX' (ECDSA) to the list of known hosts.
 00:47:37 up 3 min,  0 users,  load average: 0.00, 0.00, 0.00

Ardından, EC2’ye normal şekilde bağlanın:

ssh -i YourPublickey.pem [email protected]
    
verilen cevap Vitor Abella 27.03.2017 02:50
2

Bu, uzak ana bilgisayar anahtarınızın değiştirildiği anlamına gelir (Host şifresi değişebilir),

Terminaliniz bu komutu root kullanıcısı olarak çalıştırmayı önerdi

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231

Bu ana bilgisayar adını, pc / sunucunuzdaki ana bilgisayar listesinden kaldırmanız gerekir. Önerilen komutu kopyalayın ve root kullanıcısı olarak çalıştırın.

$ sudo su                                                            // Login as a root user

$ ssh-keygen -f "/root/.ssh/known_hosts" -R [www.website.net]:4231   // Terminal suggested command execute here
Host [www.website.net]:4231 found: line 16 type ECDSA
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

$ exit                                                               // Exist from root user

$ sudo ssh [email protected] -p 4231                              // Try again

Bunun işe yaradığını umuyorum.

    
verilen cevap Jay Patel 14.08.2016 06:59
1

Anahtarınızı şu şekilde değiştirmelisiniz: Verilen hatadan hangi ana makine anahtarının değiştirildiğini bulun Örnek: /Users/user-name/.ssh/known_hosts:5 içinde ECDSA anahtarının ihlali dedi ki 5. anahtar değişti, yani şunu yap:

sed -i '5d' ~/.ssh/known_hosts

Dikkat: Kök olmalı ya da sudo için ayrıcalığa sahip olmalısınız.

    
verilen cevap Amir.A.G 13.03.2016 16:22
1

Hedef ana makinenin rsa anahtarını, bu hedefi hedef üzerinde çalıştırarak /home/user/.ssh/known_hosts kaynak ana bilgisayara yerleştirmeniz gerekir

ssh-keyscan -t rsa @targethost
    
verilen cevap rob brennan 06.04.2017 17:42
0

pico ~/.ssh/known_hosts ve tüm satırları sil, sadece yeniden bağladıktan sonra yeni bir anahtar alacaksınız.

    
verilen cevap H0nsu 18.10.2012 08:26
0

Çözümüm bu blog yayından geliyor: SSH Secure Shell İstemcisi için Algoritma anlaşması başarısız oldu

Dosyayı aşağıdaki gibi değiştirmeniz gerekiyor:

sudo nano /etc/ssh/sshd_config

Sonra aşağıdakileri ekleyin:

# Ciphers
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,blowfish-cbc,arcfour
KexAlgorithms diffie-hellman-group1-sha1

Temel olarak, sorununuzu çözebilecek birini bulana kadar farklı çözümler denediniz. Yukarıdaki çözümler işe yaramazsa, lütfen bunu deneyin. Bu da işe yaramıyorsa, lütfen başkalarını deneyin.

    
verilen cevap Frank Puk 06.04.2017 19:01
0

Sadece ~ / .ssh / config değerindeki sıkı ana makine anahtarını devre dışı bırakın:

Host *
StrictHostKeyChecking no
    
verilen cevap Timo 26.04.2018 17:27

Etiketlerdeki diğer soruları oku