“Uyarı: Uzak Ana Bilgisayar Kimliği Değişti!” Nasıl Düzeltilir?

Yayınlanan: 2024-10-16
İçindekiler
  • Uyarıyı Anlamak
  • Sunucunun Kimliğini Doğrulayın
  • 1. Çözüm: Eski Ana Bilgisayar Anahtarını Manuel Olarak Kaldırma (Windows, Mac, Ubuntu)
  • 2. Çözüm: Bilinen_hosts Dosyasının Tamamını Temizleyin (Windows, Mac, Ubuntu)
  • 3. Çözüm: Ana Bilgisayar Anahtarı Denetimini Geçici Olarak Yoksayın (Windows, Mac, Ubuntu)
  • 4. Çözüm: Yeni Ana Bilgisayar Anahtarını Manuel Olarak Ekleme (Windows, Mac, Ubuntu)
  • 5. Çözüm: DNS veya IP Adresi Değişikliklerini Kontrol Edin (Windows, Mac, Ubuntu)
  • Gelecekte Bu Sorunu Önlemek İçin En İyi Uygulamalar (Windows, Mac, Ubuntu)
  • Çözüm

Uzak bir sunucuya SSH kullanarak bağlanmaya çalıştığınızda şu hata mesajıyla karşılaşabilirsiniz: “Uyarı: Uzak Ana Bilgisayar Kimliği Değişti!” . Bu mesaj, SSH'nin sizi üçüncü bir tarafın sunucuyla iletişiminizi kesebileceği ortadaki adam saldırılarına karşı korumak için kullandığı bir güvenlik özelliğidir.

Basit bir ifadeyle, bu uyarı size sunucunun parmak izinin (yerel makinenizde saklanan benzersiz bir tanımlayıcı) SSH'nin daha önce kaydettiğiyle eşleşmediğini bildirir. Bu, sunucunun yeniden kurulması veya IP adresinin değişmesi gibi meşru bir değişiklik olabilir, ancak aynı zamanda potansiyel bir güvenlik tehdidinin de sinyali olabilir. SSH, sunucunun orijinalliğini doğrulayana kadar sisteminizi korumak için bağlantıyı engeller.

Bu makalede, bu sorunun Mac , Ubuntu (Linux) ve Windows sistemlerinde nasıl güvenli bir şekilde çözüleceğini açıklayarak potansiyel riskleri göz ardı etmeden güvenli bir şekilde bağlanmaya devam edebilmenizi sağlayacağız.

Okumak ilginizi çekebilir: İzin Reddedildi Hatası (Publickey) nasıl düzeltilir?

Uyarıyı Anlamak

Uyarı Neden Görünüyor?

SSH, uzak sunucunun anahtarının parmak izini yerel makinenizde known_hosts adlı bir dosyada saklar. Bu parmak izi, SSH'yi her kullandığınızda aynı sunucuya bağlandığınızı doğrulamak için kullanılır. Sunucunun parmak izi değişirse, SSH size uyarı gösterecektir çünkü sunucunun kimliğinin yasal olarak değişip değişmediğinden veya birisinin bağlantınıza müdahale etmeye çalışıp çalışmadığından emin olamazsınız.

Uyarıya İlişkin Yaygın Senaryolar:

  • Sunucunun Yeniden Kurulumu veya Yükseltilmesi: Sunucu yeniden yüklenmiş, sıfırlanmış veya yükseltilmişse, known_hosts dosyanızda depolananla eşleşmeyen yeni bir SSH anahtarı oluşturabilir.
  • IP Adresi Değişikliği: Sunucunun IP adresi değiştiyse (örneğin, yeni bir barındırma sağlayıcısına veya ağa taşınma nedeniyle), SSH bunu şüpheli bir değişiklik olarak işaretleyebilir.
  • DNS Değişiklikleri: Sunucunun DNS kayıtlarında güncelleme veya yanlış yapılandırma varsa SSH bunu farklı bir sunucu olarak yorumlayabilir.
  • Sunucu Yapılandırma Değişiklikleri: Bazen sunucu yöneticileri SSH anahtar yapılandırmalarını değiştirir, bu da öncekiyle eşleşmeyen yeni bir anahtarla sonuçlanır.
  • Potansiyel Güvenlik Tehdidi (Ortadaki Adam Saldırısı): Uyarı, birisinin sunucuyla bağlantınızı kesmeye çalıştığı sinyali olabilir. Değişikliklerden emin değilseniz, devam etmeden önce sunucunun kimliğini doğrulamanız önemlidir.

known_hosts Dosyasının Rolü:

known_hosts dosyası, SSH'nin daha önce bağlandığınız uzak ana bilgisayarlar hakkındaki bilgileri depoladığı yerdir. Dosya genellikle Mac ve Ubuntu'da ~/.ssh/ dizininde bulunur ve Windows'taki PuTTY kullanıcıları için ana bilgisayar anahtarlarını Windows Kayıt Defteri'nde saklar.

Sunucunun Kimliğini Doğrulayın

Sorunu çözmek için herhangi bir değişiklik yapmadan önce “ Uzak Ana Bilgisayar Kimliği Değişti! ” uyarısı, sunucunun kimliğinin yasal olarak değişip değişmediğini doğrulamak çok önemlidir. Bu adım, ortadaki adam saldırısının kurbanı olmamanızı sağlar.

Neden Önce Sunucunun Kimliğini Doğrulamalısınız?

Bu adımı göz ardı etmek, güvenliği ihlal edilmiş veya kötü amaçlı bir sunucuya bağlanmanıza neden olabilir ve bu da verilerinizi veya kimlik bilgilerinizi riske atabilir. Özellikle sunucuda yapılan son değişikliklerden emin değilseniz, bu uyarıyı her zaman ciddiye alın.

Sunucunun Kimliğini Doğrulama Adımları:

  • Sunucu Yöneticisiyle İletişime Geçin: Sunucunun bakımını yapan kişi siz değilseniz, yöneticiye veya barındırma sağlayıcısına ulaşın ve IP adresi değişikliği, sunucunun yeniden kurulması veya anahtar yenilenmesi gibi yakın zamanda herhangi bir değişiklik yapılıp yapılmadığını sorun.
  • Ana Bilgisayar Anahtarı Parmak İzini Karşılaştırın: Sunucunun ana bilgisayar anahtarını manuel olarak kontrol etmek için aşağıdaki komutu kullanın:
     ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

    Çıktı, known_hosts dosyanızdakiyle karşılaştırabileceğiniz veya sunucu yöneticisinden talep edebileceğiniz ana bilgisayar anahtarı parmak izini gösterecektir.

1. Çözüm: Eski Ana Bilgisayar Anahtarını Manuel Olarak Kaldırma (Windows, Mac, Ubuntu)

Mac ve Ubuntu (Linux) için:

  1. Terminali açın.
  2. ~/.ssh/known_hosts dosyasını bir metin düzenleyici kullanarak açın:
     nano ~/.ssh/known_hosts
  3. Uzak sunucunun ana bilgisayar adına veya IP adresine karşılık gelen satırı arayın.
  4. Eski ana bilgisayar anahtarını içeren satırı silin.
  5. Dosyayı kaydedin ve metin düzenleyiciyi kapatın.
  6. SSH kullanarak sunucuya yeniden bağlanın:
     ssh <username>@<hostname>

Otomatik Kaldırma (Mac ve Ubuntu):

known_hosts dosyasını manuel olarak düzenlemek yerine, eski ana bilgisayar anahtarını otomatik olarak kaldırmak için aşağıdaki komutu kullanabilirsiniz:

 ssh-keygen -R <hostname or IP>

Windows için (PuTTY Kullanarak):

  1. PuTTY'yi açın.
  2. Windows + R tuşlarına basın, regedit yazın ve Enter tuşuna basın.
  3. Kayıt defteri yoluna gidin:
     HKEY_CURRENT_USER\Software\Myusername\PuTTY\SshHostKeys
  4. Uzak sunucunun ana bilgisayar adı veya IP adresiyle ilişkili girişi bulun.
  5. Girişe sağ tıklayın ve Sil'i seçin.
  6. PuTTY'deki sunucuya yeniden bağlandığınızda yeni anahtarı kabul etmeniz istenecektir.

Windows için (Git Bash kullanarak):

  1. Git Bash'i açın.
  2. Aşağıdaki komutu çalıştırın:
     ssh-keygen -R <hostname>
  3. SSH, bir sonraki bağlanışınızda yeni anahtarı kabul etmenizi isteyecektir.

2. Çözüm: known_hosts Dosyasının Tamamını Temizleyin (Windows, Mac, Ubuntu)

Mac ve Ubuntu (Linux) için:

  1. Terminali açın.
  2. known_hosts dosyasının tamamını kaldırmak için aşağıdaki komutu çalıştırın:
     rm ~/.ssh/known_hosts
  3. SSH kullanarak uzak sunucuya yeniden bağlanın:
     ssh <username>@<hostname>

Windows için (PuTTY Kullanarak):

  1. PuTTY'yi açın.
  2. Windows + R tuşlarına basın, regedit yazın ve Kayıt Defteri Düzenleyicisini açmak için Enter tuşuna basın.
  3. Şuraya gidin:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  4. SshHostKeys klasörüne sağ tıklayın ve Sil'i seçin. Bu, saklanan tüm ana bilgisayar anahtarlarını kaldıracaktır.
  5. PuTTY'yi kullanarak sunucuya yeniden bağlandığınızda yeni ana makine anahtarını kabul etmeniz istenecektir.

Windows için (Git Bash kullanarak):

  1. Git Bash'i açın.
  2. known_hosts dosyasını aşağıdakileri çalıştırarak kaldırın:
     rm ~/.ssh/known_hosts
  3. SSH kullanarak sunucuya yeniden bağlandığınızda yeni ana bilgisayar anahtarını kabul etmeniz istenecektir.

3. Çözüm: Ana Bilgisayar Anahtarı Denetimini Geçici Olarak Yoksayın (Windows, Mac, Ubuntu)

Sunucuya hızlı bir şekilde bağlanmanız gerekiyorsa ve eski ana bilgisayar anahtarlarını manuel olarak kaldırmaya zamanınız yoksa ana bilgisayar anahtarı doğrulamasını geçici olarak atlayabilirsiniz. Bu yöntem biraz işe yarasa da sizi potansiyel güvenlik risklerine maruz bırakabileceğinden düzenli kullanım önerilmez .

Mac ve Ubuntu (Linux) için:

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Windows için (Git Bash kullanarak):

 ssh -o StrictHostKeyChecking=no <username>@<hostname>

Windows için (PuTTY Kullanarak):

  1. PuTTY'yi açın.
  2. Bağlantı > SSH > Ana Bilgisayar Anahtarları'na gidin.
  3. Her zaman kabul et öğesini seçerek ana makine anahtarı denetimini devre dışı bırakın.
  4. Ana bilgisayar anahtarını doğrulamadan sunucuya yeniden bağlanın.

4. Çözüm: Yeni Ana Bilgisayar Anahtarını Manuel Olarak Ekleme (Windows, Mac, Ubuntu)

Mac ve Ubuntu (Linux) için:

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Windows için (Git Bash kullanarak):

 ssh-keyscan -H <hostname> >> ~/.ssh/known_hosts

Windows için (PuTTY Kullanarak):

Maalesef PuTTY'nin ssh-keyscan için doğrudan bir eşdeğeri yoktur. Ana bilgisayar anahtarını manuel olarak eklemek için sunucuya bağlanmanız ve PuTTY'nin sizden yeni ana bilgisayar anahtarını istemesine izin vermeniz gerekir.

5. Çözüm: DNS veya IP Adresi Değişikliklerini Kontrol Edin (Windows, Mac, Ubuntu)

Mac ve Ubuntu (Linux) için:

 nslookup <hostname>
 dig <hostname>

Windows için (Git Bash kullanarak):

 nslookup <hostname>
 dig <hostname>

Windows için (PuTTY Kullanarak):

  1. Komut İstemi'ni veya PowerShell'i açın.
  2. DNS veya IP adresini kontrol etmek için aşağıdaki komutu kullanın:
     nslookup <hostname>
  3. Çıktıdaki IP adresini PuTTY'nin kayıt defterinde gösterdiği adresle karşılaştırın.
  4. IP adresi değiştiyse şuraya giderek eski ana bilgisayar anahtarını PuTTY'nin kayıt defterinden silin:
     HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys
  5. PuTTY aracılığıyla yeniden bağlandığınızda yeni anahtarı kabul etmeniz istenecektir.

Gelecekte Bu Sorunu Önlemek İçin En İyi Uygulamalar (Windows, Mac, Ubuntu)

  • Statik IP Adresleri Kullanın: Uyarıyı tetikleyebilecek beklenmeyen değişiklikleri önlemek için sunucularınızı statik IP adresleriyle yapılandırın.
  • known_hosts Düzenli Olarak Temizleyin veya Güncelleyin : Eski veya kullanılmayan ana bilgisayar anahtarlarını düzenli olarak inceleyin ve temizleyin.
  • SSH Sertifikalarını Kullanmayı Düşünün: Ölçeklenebilir ana bilgisayar anahtarı yönetimi için SSH sertifikalarını kullanarak bu uyarının olasılığını azaltın.
  • DNS veya IP Değişikliklerini İzleyin: DNS kayıtlarındaki veya IP adreslerindeki değişiklikleri takip edin ve known_hosts buna göre güncelleyin.

Çözüm

“Uzak Sunucu Tanımlaması Değişti!” uyarı, uzak sunucuların kimliğini doğrulayarak yetkisiz erişimi önleyen SSH'deki önemli bir güvenlik özelliğidir. Her ne kadar endişe verici olsa da herhangi bir değişiklik yapmadan önce sunucunun kimliğini doğrulamak için gerekli adımları atmak önemlidir.

Bu makalede özetlenen çözümleri kullanarak Windows , Mac veya Ubuntu kullanıyor olsanız da uyarıyı güvenle çözebilirsiniz. Her zaman önce sunucunun orijinalliğini doğrulamayı unutmayın ve ardından eski ana bilgisayar anahtarını kaldırmak, known_hosts dosyasını temizlemek veya kontrolü geçici olarak atlamak gibi durumunuza en uygun çözümü seçmeyi unutmayın.

Ayrıca, statik IP adresleri kullanmak, known_hosts düzenli olarak güncellemek ve SSH sertifikalarını dikkate almak gibi en iyi uygulamaları takip etmek, gelecekte bu sorunun ortaya çıkmasını en aza indirmeye yardımcı olabilir.