Ssh'de StrictHostKeyChecking özelliğini devre dışı bırak


14

Kullanarak bir Linux ana bilgisayara bağlanmaya çalışıyorum sshve aşağıdaki hatayı alıyorum

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

Bunu geçersiz kılmak istiyorum, ancak bunu yapmak için herhangi bir seçenek kombinasyonu bulamıyorum.

Muhtemelen StrictHostKeyChecking'i yıllar önce ayarladım, ama nasıl olduğunu hatırlamıyorum.

Ben danıştı man sshbeni sistem çapında yapılandırma dosyası olan bilgi verir /etc/ssh/ssh_configve kullanıcı başına yapılandırma dosyası için varsayılan ~/.ssh/configne var.

DÜZENLEME Sorumu açıklığa kavuşturmak için seçenek açıkça ayarlanmıştır. Keşfetmeye çalışıyorum

  1. Seçenekler nerede saklanır (yanlış görünüyor adam sayfasında belirtilen dosyaları yok).
  2. Seçenekler nasıl değiştirilir.

Ben yaşadığım sorunun etrafına nasıl bakmıyorum (bilinen_hosts dosyasını düzenleyebileceğimi biliyorum, ancak her yeni sunucuyu denediğimde bu sıkıcı).


Bu var /etc/ssh_configbenimkine.
sborsky

@sborsky Ben de (ki bu adamdan farklı) var ama tüm seçenekler yorumlanır.
Milliways

Bu, man sayfasına göre varsayılan olan anlamına gelir ask. Bir ana bilgisayar anahtarı değiştiğinde, ssh istemcisi StrictHostKeyCheckingayarlanmadığı sürece bağlanamaz no. Ana makine anahtarı çok sık değişmezse ~/.ssh/known_hosts, yapılandırmayı değiştirmek yerine bu bir ana makine anahtarını kaldırmanızı öneririm .
sborsky

1
İlk önce neden değiştirildiğini bulmalısınız . Eğer değiştirmediyseniz, bir MitM saldırısı olabilir ve elbette bu ana bilgisayar anahtarına izin vermemelisiniz!
Görünen Ad

yan not - belirli bir ana bilgisayar için tüm kayıtları kaldırdıktan sonra .ssh/known_hosts, başka bir dosyada rahatsız edici satırı bulana kadar uyarı almaya devam ettim .ssh/known_hosts2. Görünüşe göre OS X her ikisini de kullanıyor
billynoah

Yanıtlar:


18

Geçerli kullanıcı için OS X'te katı ana bilgisayar denetimini devre dışı bırakmak için ~ / .ssh / config dosyasını oluşturun veya düzenleyin ve aşağıdaki satırları ekleyin:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Yerel ağınızdaki ana makineler için tipik bir örnek şunlar olabilir:

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

Ssh kullanımınıza bağlı olarak, tüm ana bilgisayarlar için katı ana bilgisayar anahtarı denetimini devre dışı bırakmanızı önermiyorum .

Sadece 10.1.1.20 için girişi kaldırmak istediğiniz bir editör ile ~ / .ssh / known_hosts açın ve ilgili satırı "10.1.1.20 ssh-rsa public-key $ " kaldırın


Ayrıca / dev / null satırı olmadan çalışıyor gibi görünüyor.
John2095

6

Sadece komut satırında, confitguration olmadan olduğu gibi deneyebilirsiniz:

ssh -o StrictHostKeyChecking=no hostname

Ama ihtiyacın olan her şeyi yaptığını sanmıyorum. Tüm anasistem anahtarı denetimlerini yoksaymak istiyorsanız, known_hostsdosyanızı /dev/nullhiçbir zaman depolanmayacak şekilde ayarlamanız gerekir :

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

veya /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

İlk hala bağlanmama izin ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnamevermedi , ama yaptı. Hâlâ WrictE StrictHostKeyChecking'in ayarlandığı yeri bulamıyorum!
Milliways

Varsayılan olarak "evet" tir, bu nedenle uygulanacak herhangi bir yere ayarlanması gerekmez.
Jakuje

Belgeler varsayılan olarak evet olarak belirtiliyor
Milliways

bir çözüm olarak seçmek, sorununuzu çözmenize yardımcı olursa yardımcı olacaktır;)
Jakuje
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.