SSH üzerinden bağlanırken “Uzak ana bilgisayar tanımlaması değişti” uyarısı


21

Sunucuma giriş yapmaya çalışırken bugün bu mesajı aldım. Ne yapmalıyım? Neler oluyor?

$ ssh 10.10.10.69
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
3d:1b:02:9e:b2:b8:f0:f7:c6:4f:94:96:f6:e3:c0:d1.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:8
RSA host key for 10.10.10.69 has changed and you have requested strict checking.Host key verification failed.

2
Bir kenara, yerel olarak ve uzaktan kök olarak oturum açmaktan kaçınmak yerine, ayrıcalıklı olmayan kullanıcıları sudo ile birlikte kullanmak isteyebilirsiniz.
Steve Beattie

Yanıtlar:


12

Yakın zamanda işletim sisteminizi sunucunuza ya da benzeri bir şeyi yeniden yüklediniz mi? Bu buna sebep olur.

Bunu düzeltmek için: http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/

1. Çözüm: ssh-keygen kullanarak anahtarları kaldırın

Ana -Rbilgisayar adına ait tüm anahtarları bir bilinen_hosts dosyasından kaldırmak için bu seçeneği kullanın . Bu seçenek, karma ana bilgisayarları silmek için kullanışlıdır. Uzak ana bilgisayar adınız server.example.com ise, şunu girin:

$ ssh-keygen -R {server.name.com}
$ ssh-keygen -R {ssh.server.ip.address}
$ ssh-keygen -R {ssh.server.ip.address} -f {/path/to/known_hosts}
$ ssh-keygen -R server.example.com

Artık, ana bilgisayara bir sorun olmadan bağlanabilirsiniz.

2. Çözüm: Doğru ana makine anahtarı ekleyin /home/user/.ssh/known_hosts

Bilinen_hosts dosyasının tamamını, sadece dosyadaki rahatsız edici satırı silmek gerekmez. Örneğin, aşağıdaki gibi 3 sunucunuz varsa.

myserver1.com,64.2.5.111 ssh-rsa  
 AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0EnGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94AAAAB3NzaC1yc2EAAAABIwAAAIEA11FV0E
nGahT2EK8qElocjuHTsu1jaCfxkyIgBTlxlrOIRchb2pw8IzJLOs2bcuYYfa8nSXGEcWyaFD1ifUjfHelj94H+uv304/ZDz6xZb9ZWsdm+264qReImZzruAKxnwTo4dcHkgKXKHeefnBKyEvvp/2ExMV9WT5DVe1viVw
    k=
    myserver2.com,125.1.12.5 ssh-rsa
 AAAAB3NzaC1yc2EAAAABIwAAAQEAtDiERucsZzJGx/1kUNIOYhJbczbZHN2Z1gCnTjvO/0mO2R6KiQUP4hOdLppIUc9GNvlp1kGc3w7B9tREH6kghXFiBjrIn6VzUO4uwrnsMbnAnscD5EktgI7fG4ZcNUP 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGxQz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/IyI4NxHhhpltYZKW/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBf
    w=
    myserver3.com,125.2.1.15 ssh-rsa 
 5+J7sa3o+rtmOuiFxCA690DXUJ8nX8yDHaJfzMUTKTGx0lVkphVsvYD5hJzm0eKHv+oUXRT9v+QMIL+um/IyI4NxHhhpltYZKW
 as3533dka//sd33433////44632Z6MGnAazIviHBldxtGrFwvEnk82/Qz4M/H2P8L2R//qLj5s3ofzNmgSM9lSEhZL/M7L0vKeTObue1SgAsXADtK3162a/Z6MGnAazIviHBldxtGrFwvEnk82+GznkO3IBZt5vOK2heBnqQBfw==

2. sunucuyu (myserver.com) silmek için dosyayı açın:

# vi +2 .ssh/known_hosts

Ve satırı silmek için dd komutunu tıklayın. Dosyayı kaydedin ve kapatın. Veya aşağıdakileri kullanın

$ vi ~/.ssh/known_hosts

Şimdi 2. satıra gidin, aşağıdaki komutu yazın

:2

Şimdi dd ile satırı sil ve çık:

dd
:wq

Veya # 44 numaralı satırdaki rahatsız edici anahtarı silmek için sed komutunu aşağıdaki gibi kullanabilirsiniz:

$ sed -i 44d ~/.ssh/known_hosts

3. Çözüm: Yalnızca known_hosts dosyasını silin Sadece bir ssh sunucunuz varsa

$ cd
$ rm .ssh/known_hosts
$ ssh ras.mydomain.com

Ssh ile tekrar bağlanmayı deneyin
Şimdi sunucunuzu ssh ile bağlayabilmeniz gerekir:

ssh username@server-ip-here
ssh nixcraft@server1.cyberciti.biz

Ardından, ~/.ssh/known_hostsaşağıdaki gibi bir anahtar eklemek için yeni bir komut istemi alacaksınız :

The authenticity of host '10.86.115.66 ()' can't be established.
ECDSA key fingerprint is 4e:10:42:39:53:85:7f:89:89:dc:89:84:8d:79:e7:ed.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.86.115.66' (ECDSA) to the list of known hosts.

9
Eğer sunucunun SSH konak anahtarlarını değiştirmek ETMEDİYSENİZ, sen gerektiğini unutmayın değil , değer bir man-in-the-middle saldırısı gerçekleştirerek iletişiminizi yıkmak çalıştığını bildiren bir işaret olabilir, lütfen ana anahtarının kopyasını değiştirin.
Kees Cook

7

Söyleyebileceğim kadarıyla, tüm bu cevaplar onunla uğraşmak yerine uyarıyı bastırmakla ilgili. Kısacası, uyarı size sunucunun eskiden göründüğü gibi görünmediğini söylüyor; Bunun neden bir tehlike olabileceğinden dolayı https://en.wikipedia.org/wiki/Man_in_the_middle_attack adresine bakın .

man sshÖzellikle bu bölümü okuyun :

VERIFYING HOST KEYS

Bir sunucuya ilk kez bağlanırken, kullanıcıya sunucunun ortak anahtarının parmak izi sunulur ( StrictHostKeyChecking seçeneği devre dışı bırakılmadıysa). Parmak izleri ssh-keygen (1) kullanılarak belirlenebilir :

   $ ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

Güvenli tarafta olmak için, siz (veya güvendiğiniz biri) bu komutu önce bağlandığınız sunucuda çalıştırmalısınız. Size, sorudaki uyarıdaki gibi bir parmak izi gibi görünmesini sağlayacaktır. Tabii ki, çoğu zaman bu bilgiye sahip değilsiniz, ancak bir şey olduğundan şüphelenmek için bir nedeniniz varsa, bu komutu çalıştırmak, sunucu imzasının gerçekten değişip değişmediğini veya şüpheli bir şey olup olmadığını kontrol etmenin yoludur.


1
Ana makineniz bir md5 karma yerine sha256 parmak izi sağlıyorsa bunu kullanın. ssh -o FingerprintHash=md5 example.org
Declan McKenna

1
FingerprintHash hakkında daha fazlası: superuser.com/questions/929566/… (örn. Sha256 tercih edilmeli, ancak yakın zamanda yeterince yükseltme yapmamışsanız bu değeri bilmiyor olabilirsiniz)
saat

2

Aynı problemle karşılaştım ve known_hostsdosyanın tamamını silmek istemiyorsanız , aşağıdaki komutu uygulayabilirsiniz:

ssh-keygen -R 10.10.10.69

Bilinen_host'ları silmede sorun yok. Her bağlandığınızda yalnızca bağlandığınız her sunucuyu listeye eklemeniz gerekir. Ana bilgisayarlara henüz güvenilmediğinden, komut dosyalarınızı da bozabilirsiniz. Uyarı, ana makinenin imzası (genellikle yeniden yükleme veya anahtar rotasyonu nedeniyle, yeni anahtarlara bağlanmaya çalıştığınız bilgisayar) kullanıldığında oluşur.


0

Yanlış bir pozitif uyarının olduğunu düşünüyorsanız, yeni bir doğrulama başlatmak için / root / ssh / known_hosts komutunu silebilirsiniz.


3
Lütfen bunu yapma, bilinen diğer ev sahiplerini kaybedeceksin. Bunun yerine, yanlış bir pozitif olduğundan eminseniz, bu durumda belirli satırı silin: "known_hosts: 8" bu durumda 8. satır.
Roger Light,

0

Sunucuyu yakın zamanda yeniden yüklediyseniz ya da ana bilgisayar anahtarını değiştirdiyseniz, muhtemelen ~ 8. "Anahtar doğrulama istediğinde"


0

Sunucunuz yerel bir ağda olduğundan, kendinizden oldukça emin olabilirsiniz.

Sisteminizi yeniden yüklediyseniz, bu normaldir, ancak bilinen_hosts dosyanızı kaldırmak yerine, yapılması önerilir echo "" > ~/.ssh/known_hosts


İnsanlar hala yerel bir ağda numaralar oynayabilir. İş veya Okul ağlarının güvenilir olmadığı için çok fazla boş alanı olabilir.
Azendale


0

Bu hattı kopyala fakat için kullanıcı adı ve ana bilgisayar adı / IP koymak userve remote-server:

ssh-keygen -f "/home/user/.ssh/known_hosts" -R remote-server

Örneğin:

ssh-keygen -f "/home/dev1/.ssh/known_hosts" -R 192.168.199.108

Ve yerel terminalinize yapıştırın ve çalıştırın. Bu benim için çalıştı.


0

Ssh’yı yayınladığınız istemci düğümünde,

vi ~/.ssh/known_hosts

Ağa girmeye çalıştığınız IP ile aynı ağdaki IP adresleriyle başlayan tüm satırları silin. Bu, istemci düğümünü bilinen ana bilgisayarlar listesine kalıcı olarak (ECDSA) eklemeye zorlar.

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.