SSH'nin bilinen ana bilgisayarlar için ana bilgisayar doğrulamasından nasıl kaçınabilirim?


167

Her seferinde SSH kullanarak bir sunucuya bağlanmaya çalıştığımda aşağıdaki mesajı alıyorum. "Evet" yazarım, ama bunu aşmanın bir yolu var mı?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 

7
/ dev / null onlar :) orta saldırılarda adam bağışıklık düşünenler için var
Tim Mesaj

1
En kötü kısım: yBiraz zaman kazanmak için yazın ve şikayetçi: Please type 'yes' or 'no': (hmph)
ADTC

Yanıtlar:


227

-oSeçeneğini kullanın

ssh -o "StrictHostKeyChecking no" user@host

1
'-İ' bayrağıyla alternatif bir kimlik dosyası kullanmak isteyebilirsiniz
MUY Belgium

Alternatif bir kimlik dosyası kullanmak ne işe yarar? Yani, güvenli bir ana bilgisayara bağlanıyorsanız, kimlik doğrulamanızı nasıl etkilediğini fark edersiniz - güvenli bir ana bilgisayarın anahtarınızı da çalmasına benzemez.
Dagelf

99

Başına aşağıdaki satırları ekleyin /etc/ssh/ssh_config...

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

Seçenekler:

  • Ana bilgisayar alt *ağı tüm IP'lere sınırsız erişime izin vermek olabilir .
  • Genel /etc/ssh/ssh_configyapılandırma veya ~/.ssh/configkullanıcıya özel yapılandırma için düzenleme yapın.

Bkz http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
Yazık, sadece bir kez seni oylayabilirim. BilinenHosts'u / dev / null değerine ayarlamak dahidir.
J0hnG4lt

1
En zekisin.
Darth Egregious

30
Ha! Karıma söyle.
JimFred

30

Bunu yalnızca yeni bir ana bilgisayara ilk kez bağlandığınızda almalısınız. Yanıt verdikten sonra yesana bilgisayar saklanır ~/.ssh/known_hostsve bir sonraki bağlanışınızda istenmez.

Eğer unutmayın ~/.ssh/known_hosts(örn izinler sorun) herhangi bir nedenle yazılamaz sonra size bağlamak her zaman istenebilir alacak.


6
Asıl soru, istemi önlemek için yine de var mı?
shantanuo

/ Etc / ssh / ssh_config dosyasına "CheckHostIP no" eklemeye çalıştım. Ama çalışıyor gibi görünmüyor
shantanuo

2
sudo chown -R kullanıcısı: user .ssh; sudo chmod 700. ssh; sudo chmod -R 600. ssh /; ssh-keygen -R $ ana bilgisayar adı ve yeniden bağlanma, TÜM sorunları ortadan kaldırmalı ve Ssk_Hostkey | değişti veya bir MITM’e kurban oldunuz.
linuxdev2013

1
"her zaman" yazıyor bu yüzden bu cevap süper uygun
tarikakyol

11

En iyi yol (güvenliği feda etmediği için) bir istemciden tüm bilgisayarlara bir kez bağlanmaktır (her zaman istenir, her zaman evet cevabını alırsınız). Diğer cevapta belirtildiği gibi, tuşlar daha sonra ~ / .ssh / known_hosts içinde saklanır. Sonra bu dosyayı daha sonra bağlanmak isteyebileceğiniz her istemci bilgisayara kopyalayın (muhtemelen kullandığınız her kullanıcı hesabı için). O zaman tüm bu hesaplar bilgisayarları "bilecek", bu yüzden istem yok.

İstemi devre dışı bırakmanın avantajı, SSH'nin gerçekten bir MITM saldırısı olup olmadığını kontrol edebilmesidir.


1
Her ne kadar sık ​​sık ileri bağlantılarla ssh kullanıyorsanız, bunu / etc / ssh / ssh_config dosyasına eklemek istersiniz: Ev sahibi 127.0.0.1 NoHostAuthenticationForLocalhost evet
Dagelf

1

Doğrulamayı devre dışı bırakmak yerine onaylamayı devre dışı bırakmak istiyorsanız, şu seçeneği kullanabilirsiniz: "-o CheckHostIP = no"

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8

OP zaten aynı cevabı aldı ve kabul etti.
Ayan,

0

Bunun nedeni muhtemelen ssh anahtar sunucunuzun değişmesidir, çünkü sunucu ip veya etki alanı aynıdır ancak ssh anahtar uyuşmazlığıdır.

/home/$user/.ssh/known_hostsBu mesajı önlemek için kayıtlı anahtarı çıkartmanız gerekir .

Bu dosyadaki tüm anahtarları kaldırarak düzelttim, böylece bu etki alanı adı için yeni belirteç oluşturuldu.


1
Anahtar değişti bir atsigns kutu ve bir daha çirkin mesajı üretir WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ve IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!tüm kapaklar içinde. Sorudaki mesaj, eğer henüz bir giriş yapılmadıysa oluşur known_hosts.
dave_thompson_085 15:15

-1

~/.ssh/known_hostsDosyanızın izinlerini kontrol edin . Benimki bu sorunu aldığımda yanlıştı. Bunu düzelttim:

chmod 0600 ~/.ssh/known_hosts
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.