Ortak / özel anahtarlarla SSH üzerinden bir makineye ilk kez bağlandığımda “bilinen_anahtar” sorusunu nasıl atlarım? [çiftleme]


Yanıtlar:


31

Tüm diğer mevcut cevaplar eksik UserKnownHostsFile = / dev / null

Sadece bir kez yapmak istiyorsanız, şunları kullanabilirsiniz:

ssh -o StrictHostKeychecking=no hostname

Bunu tekrar tekrar yapmak istiyorsanız, ~ / .ssh / config dosyasına aşağıdakine benzer bir şey eklemeniz gerekir.

Host 192.168.0.*
    StrictHostKeyChecking no
    UserKnownHostsFile=/dev/null

Bunu Windows için OpenSSH'de yapılandırmak için /dev/nullile değiştirin NUL.

İyi açıklama: http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
Uzakta bir alt ağı aylarca filtrelemek için avlanıyorum (aktif olarak değil), tam olarak istediğim şey bu. Dhcp ile küçük bir geliştirme ağımız var ve cihazlarımız her zaman yeni IP adresi alıyor, bu da onlara çok daha kolay bağlanmasını sağlıyor. Teşekkürler!
Adam Lewis

13

StrictHostKeyCheckingÜzerinden ssh_configveya komut satırı seçenekleriyle kapatın .


/ etc / ssh / ssh_config veya ~ / .ssh / config --- veya istemci platformunuz buysa eşdeğeri ne olursa olsun
Doug Harris

3

Ortak anahtarı alabilir, bilinen_hosts dosyasına ekleyebilir ve yeniden rehash edebilirsiniz:

ssh-keyscan -t rsa hostname >> .ssh/known_hosts
ssh-keygen -H
rm .ssh/known_hosts.old

2
$ ssh -o StrictHostKeychecking=no hostname

Bu, ilk girişte onayın atlanmasına ve uzak ana bilgisayarın anahtarının otomatik olarak eklenmesine neden olur. (CheckHostIP seçeneği de var, ancak bir anahtarın var olup olmadığını kontrol etmeyi devre dışı bırakmıyor gibi görünüyor).


2
İmzayı sistemimde hatırlanmayacak şekilde UserKnownHostsFile kullanmayı da seviyorum. Güzel bir numara:ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeychecking=no hostname
metavida

2

Bulmam biraz zaman aldı. Gördüğüm en yaygın kullanım alanı, uzak ağlara ssh tünellerine sahip olduğunuzda. Buradaki tüm çözümler komut dosyalarımı (nagios) kıran uyarılar üretti.

İhtiyacım olan seçenek:

NoHostAuthenticationForLocalhost yes

Hangi, adından da anlaşılacağı gibi sadece localhost için de geçerlidir.


0

Denetimi devre dışı bırakabilirsiniz, ancak elbette bu daha az güvenlidir. İdeal bir durumda yapmanız gereken, herkese açık ana makine anahtarını almak ve ssh'ye kullanmasını söylemek için makineye zaten erişimi olan birini almaktır. yani: çıktısını al:

cat /etc/ssh/ssh_host_rsa_key.pub

makinenin ana bilgisayar adını ekleyin ve bu satırı makinenizdeki ~ / .ssh / known_hosts dosyasına ekleyin. Sonuç olarak şuna benzer bir şey elde edersiniz:

myhost.example.com ssh-rsa AAAAB3Netc ...

Alternatif olarak, yalnızca sınırlı bir bant genişliği kanalı (telefon görüşmesi gibi) üzerinden aktarılması daha kolay olabilecek anahtarın parmak izini almak istiyorsanız, yardımcınızın çalışmasını sağlayabilirsiniz:

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

0

Ana bilgisayar denetimini geçici olarak devre dışı bırakmak istiyorsanız, örneğin bir LiveCD sistemine giriş yapabilir, örneğin ~/.ssh/known_hostsbaşka bir şeye yeniden adlandırabilir ve işiniz bittiğinde yeniden değiştirebilirsiniz.


-2
  1. / Etc / ssh / ssh_config dosyasına "StrictHostKeyChecking no" ekleyin
  2. cd ~ / .ssh
  3. rm Instagram Hesabındaki Resim ve Videoları bilinen_hosts
  4. ln -s / dev / null bilinen_hosts

Bingo


1
Bu sorunun ne tür bir saldırıyı önleyeceğini biliyorsunuz, değil mi?
vonbrand
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.