"Ana bilgisayar anahtarı doğrulaması başarısız oldu" ile SSH bağlantı sorunu..." hatasız

Lan'ımdaki başka bir Ubuntu makinesine SSH üzerinden bağlanabilirim. Her iki bilgisayarda da yükledim openssh sunucusu ancak başka bir Ubuntu bilgisayarından SSH üzerinden bilgisayarıma bağlanamıyorum ve bu hatayı aldım:

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

"Ana bilgisayar anahtarı doğrulaması başarısız oldu" şu anlama gelir: ev sahibi uzak ana bilgisayarın anahtarı değiştirildi.

SSH, uzak ana bilgisayarların ana bilgisayar anahtarlarını ~/.ssh/known_hosts. Bu metin dosyasını el ile düzenleyebilir ve eski anahtarı kaldırabilirsiniz (hata iletisinde satır numarasını görebilirsiniz) veya

ssh-keygen -R hostname

-den adam sayfası:

-R ana bilgisayar adı
Hostname ait tüm anahtarları known_hosts dosyasından kaldırır. Bu seçenek karma ana bilgisayarları silmek için kullanışlıdır.

(cevabımdan öğrendiğimSSH'nin known_hosts dosyasından belirli bir ana bilgisayar anahtarını kaldırmak mümkün mü?).

Ekleme istemi ana anahtarına etkileşimli erişiminizin olmadığı belirli uzak / komut dosyası durumlarında çalışıyorsanız, bu gibi geçici bir çözüm bulun:

$ ssh -o StrictHostKeyChecking=no user@something.example.com uptime

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

Ayrıca bazen seri konsolda çalışırken, daha sonra ayrıntılı modda yukarıdaki komutu kontrol ederken durum söz konusudur -v sana göstereceğim /dev/tty var olduğu sürece yok.

ssh -v user@hostname

Yukarıdaki durumda sadece kaldırın /dev/tty ve sembolik bir bağlantı oluşturun /dev/ttyS0 -e doğru /dev/tty.

rm /dev/ttyln -s /dev/ttyS0 /dev/tty

Alternatif olarak şunları ekleyin id_rsa.pub uzak konuma, bu nedenle parola sorulmaz ve oturum açma erişimi elde edersiniz.

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

sudo mknod -m 666 /dev/tty c 5 0

Terminalde:

ssh -o StrictHostKeyChecking=no -i YourPublicKey.pem user@example.com uptime

Aşağıdaki ileti veya benzeri bir ileti görüntülenir:

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'nize normal şekilde bağlanın:

ssh -i YourPublickey.pem user@example.com

Ssh bağlanmaya devam etmek istediğinizi onayladığında sadece "evet" girmeniz gerekebilir.

Feryat gibi.

The authenticity of host 'xxx' can't be established.ECDSA key fingerprint is yyy.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'xxx' (ECDSA) to the list of known hosts.Enter passphrase for key '/Users/ysy/.ssh/id_rsa':

Ardından şifrenizi girin.

Lütfen "Bağlanmaya devam etmek istediğinizden emin misiniz (evet / hayır)? evet". Evet girmelisin, girmemelisin.

hedef ana bilgisayarın rsa anahtarını kaynak ana bilgisayara koymanız gerekir /home/user/.ssh/known_hosts bunu hedef üzerinde çalıştırarak

ssh-keyscan -t rsa @targethost

Eh, sadece ikinci ubuntu'nun şifre ile değil, anahtarla bağlantı gerektirmesi nedeniyle.

Kullanmanızı öneririm sudo dpkg-reconfigure openssh-server bilgisayarınızda ve sonra düzgün çalışması gerekir. Openssh yapılandırmasını sıfırlar ve varsayılan parola kimlik doğrulamasına geri dönmelidir.

İkinci olasılık, PC'nizde diğer ubuntu'nuz için zaten bir anahtar olması ve artık tanınmayacak şekilde değişmesidir. Bu durumda, dosyayı düzenlemeniz gerekir .ssh/authorized_keys ubuntu'nuzu tanımlayan sorunlu satırı kaldırmak için.

Bu eski bir iş parçacığı ve bu cevaba rastladım, bunu çözmek için ne yaptığımı ekleyeceğim.

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

Sadece bana attığı hata mesajına baktım ve bu komutu ana bilgisayar listesinden kaldırmak için çalıştırmamı söyledi. Bundan sonra aşağıdakileri yaptım:

ssh-copy-id HOSTNAME

Sunucuya ssh yapabilene kadar oradan gelen istemleri takip ettim.

Anahtarınızı şu şekilde değiştirmelisiniz: Verdiğiniz hatadan hangi ana bilgisayar anahtarının değiştiğini bulun örneğin: /Users/user-name/ dosyasında ECDSA anahtarını rahatsız etmek.ssh / known_hosts: 5saıd 5. anahtar değiştirildi, bunu yapın:

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

Lütfen dikkat: root olmanız veya sudo ayrıcalığına sahip olmanız gerekir.

Ana bilgisayar adlarını veya IP adreslerini kullanıyor musunuz?

Benzer değil ama aynı hatayı aldım ama farklı bir sorundan dolayı: ubuntu - Managing multiple servers behind a firewall with SSH reverse tunnel - Server Fault

Bu Ubuntu’ya özgü bir sorun değil. Komut satırından herhangi bir ssh ile olabilir.