it-swarm.asia

Bilinen_host'lardan anahtarı kaldır

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ı?

128
Adam Matan
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.

83
mikewaters

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.

111
Sean Staats

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).

70
user201564

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.

18
innaM

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.

8
rouble

Bu sorundan kurtulmak için aşağıdaki komutu kullanmanız gerekir. Terminali açın ve aşağıdaki komutu yazın:

Aşağıdaki tüm örnekler için sadece -R sonrası değeri değiştiriniz.

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
8
Tarun Gupta

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.

2
grosser

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.

0
Arunas Bartisius

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.

0
stimms

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.

0
Ryan Griggs