Son birkaç hafta boyunca birkaç sanal makine yaptım. Sorun şu ki, .ssh/known_hosts
bana ortadaki adam uyarısını veriyor. Bu, başka bir parmak izi sanal makine IP adresiyle ilişkilendirildiği için gerçekleşir.
Ancak .ssh/known_hosts
dosyasında IP ile ilgili kaydı bulamıyorum, sadece iki tuhaf, anahtar benzeri dizeler ve "ssh-rsa".
Eski anahtarın known_hosts
dan nasıl çıkarılacağı hakkında fikri olan var mı?
sed -i '6d' ~/.ssh/known_hosts
Dosyayı değiştirecek ~/.ssh/known_hosts: 6, 6. satırı kaldırarak.
Kanımca, ssh-keygen -R
kullanmak, bir openssh uzman kullanıcı için daha iyi bir çözümken, düzenli Linux yöneticiniz yukarıdaki yöntemi kullanarak becerilerini taze tutmak için daha iyisini yapacaktır.
En basit çözüm şudur:
rm -f .ssh/known_hosts
ssh dosyayı yeniden oluşturur, ancak diğer ana bilgisayarlar için anahtar kontrolünü kaybedersiniz!
Veya kullanabilirsiniz:
ssh-keygen -R "hostname"
Veya ssh "ortadaki adam" mesajı, known_hosts dosyasının hangi satırının rahatsız edici parmak izine sahip olduğunu göstermelidir. Dosyayı düzenleyin, o satıra atlayın ve silin.
Bunun için bir ssh-keygen anahtarı (-R) var.
adam ssh-keygen okur:
-R ana bilgisayar adı Bilinen_hosts dosyasından ana bilgisayar adına ait tüm anahtarları kaldırır. Bu seçenek, karma ana bilgisayarları silmek için kullanışlıdır (yukarıdaki -H seçeneğine bakın).
Uyarı size bilinen hosts dosyasındaki tam satırı söyleyecektir.
İşte bir örnek:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA Host key for foo-bar.net has changed,
and the key for the corresponding IP address 127.0.0.1
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the Host
and its Host key have changed at the same time.
Offending key for IP in /home/user/.ssh/known_hosts:6
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE Host IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
/home/user/.ssh/known_hosts:6
bölümüne bakın? Dosya ve satır numarasını belirtir.
Ssh'ye, UserKnownHostsFile ve StrictHostKeyChecking bayraklarını kullanarak known_hosts dosyasını kontrol etmemesini söyleyebilirsiniz.
Örneğin:
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]
Kullanım kolaylığı için bu takma adı kullanabilirsiniz:
alias boldssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
Artık, sunucunun sertifikasına güvendiğinizden emin olduğunuzda, sadece cıvatalayabilirsiniz.
Bu sorundan kurtulmak için aşağıdaki komutu kullanmanız gerekir. Terminali açın ve aşağıdaki komutu yazın:
ssh-keygen -R server-name
ssh-keygen -R server.ip.addre.ss
ssh-keygen -R 202.54.1.5
ssh-keygen -R server1.example.com
Ayrıca, örneğin bilinen ana bilgisayarlardan tek bir satırı da kaldırabilirsiniz. rmknownhost 111 (111, kaldırılacak satırdır):
#! /usr/bin/env Ruby
line = ARGV[0] || raise("gimme line to remove")
hosts = File.expand_path("~/.ssh/known_hosts")
content = File.readlines(hosts)
removed = content.delete_at line.to_i - 1
puts "Removed:\n#{removed}"
File.open(hosts, 'w'){|f| f.write content * ""}
Bunu rmknownhost
adresinden bir klasöre PATH
olarak kaydedin.
Tüm cevaplar iyidir, ancak gerçek SSH profesyonelleri için ssh imzasının port numarası ile nasıl kaldırılacağı konusunda bilgi eksik.
Örneğin. bağlan
ssh some.Host.name -p 222
ve uyarı alırsınız ve bunu kaldırmak için köşeli parantez sütun port numarası kullanmanız gerekir:
ssh-keygen -R [some.Host.name]:222
Bu standart olmayan yapılandırma kullanıcıları için yardımcı olur umarım.
Ana bilgisayar adı veya ip için giriş ilk sütunda olmalıdır. Uyarı ayrıca, rahatsız edici anahtarın bulunduğu satır numarasını da listelemelidir.
Bu bir metin dosyasıdır. Vi (m) ile kolayca düzenleyebilir ve söz konusu satırı (dd) silebilir ve dosyayı (wq) kaydedebilirsiniz. Ancak bir Ana Bilgisayarı kaldırmak için belirli bir komut varsa, bu muhtemelen en güvenli yöntemdir.