ssh, pazarlık yapamıyor - eşleşen bir anahtar değişimi yöntemi bulunamadı


32

DSL yönlendiricime giriş yapmaya çalışıyorum, çünkü komut satırı postalarında sorun yaşıyorum. Yönlendiriciyi yeniden yapılandırabileceğimi umuyorum.

sshEmri verdiğimde olan şey şu:

$ ssh enduser@10.255.252.1

Unable to negotiate with 10.255.252.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

o zaman bu stackexchange mesajına baktım ve komutumu buna göre değiştirdim, ancak bu sefer şifreli olarak farklı bir problem alıyorum.

$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 enduser@10.255.252.1

Unable to negotiate with 10.255.252.1 port 22: no matching cipher found. Their offer: 3des-cbc

şifreleme önermek için bir komut var 3des-cbcmı? 3des hakkında emin değilim, sistemime kalıcı olarak eklemek isteyip istemediğim gibi.

3des-cbcŞifreye izin verecek bir komut var mı ?

Burada problem nedir? Şifre sormuyor.


1

1
Ssh'ın kullanabileceği çok sayıda farklı şifreleme algoritması vardır ve müşterinizle sunucu arasında ortak bir tane yoktur. ssh -o KexAlgorithms=diffe-hellman-group-sha1 enduser@10.255.252.1İstemcinizi daha eski, daha az güvenli bir algoritma kullanmaya zorlamayı deneyin ve yönlendiriciniz için daha yeni bir ürün yazılımı olup olmadığına bakın.
icarus

1
ssh -vvv ...Sunucu tarafından sunulan tüm anahtar değişimi ve şifre protokollerini ortaya koyacaktır.
David Foerster

Yanıtlar:


47

Bu özel hata şifreli kanal kurulurken olur. Sisteminiz ve uzaktaki sisteminiz en az bir şifreyi paylaşmıyorsa, üzerinde anlaşılacak hiçbir şifre yoktur ve şifreli bir kanal mümkün değildir. Genellikle SSH sunucuları, farklı müşterilere hizmet vermek için küçük bir avuç dolusu farklı şifre sunacak; Sunucunuzun neden yalnızca 3DES-CBC'ye izin verecek şekilde yapılandırıldığından emin değilim.

Şimdi, 3DES-CBC korkunç değil. Yavaş ve diğer bazı algoritmalardan daha az güvenlik sağlar , ancak anahtarlar doğru seçildiği sürece hemen kırılmaz. CBC'nin bazı sorunları var şifreli metnin geçiş sırasında değiştirilebileceği , ancak sonuçta ortaya çıkan yolsuzluğun SSH’nin HMAC’i tarafından reddedileceğinden şüpheleniyorum, bu da etkiyi azaltıyor. Alt satırda, 3DES-CBC'den daha kötü seçenekler var ve daha iyileri var. Ancak, şifre ve anahtar değişim algoritması seçenekleri de dahil olmak üzere güvenlikle ilgili varsayılan ayarları geçersiz kılarken her zaman dikkatli olun. Bu varsayılanlar, bir nedenden dolayı varsayılanlardır; bazı oldukça zeki insanlar seçenekleri göz önünde bulundurarak bir miktar beyin gücü harcadılar ve varsayılan olarak seçilenlerin performans dengelemeye karşı en iyi genel güvenliği sağladıklarını belirlediler.

Öğrendiğiniz gibi, müşteri tarafından hangi şifreyi sunacağınızı belirtmek için -c ...(veya -oCiphers=...) kullanabilirsiniz . Bu durumda ekleme -c 3des-cbc, müşteriden yalnızca 3DES-CBC'ye izin verir. Bu, sunucunun sunduğu bir şifreyle eşleştiğinden, şifreli bir kanal oluşturulabilir ve bağlantı doğrulama aşamasına ilerler.

Bunu kişiselinize de ekleyebilirsiniz ~/.ssh/config. Yerel bir sorunu çözmek için küresel bir değişiklik yapmaktan kaçınmak için onu bir Hoststanza koyabilirsiniz . Örneğin, SSH yapılandırmanız şu anda diyorsa (yapay örnek):

Port 9922

varsayılan 22 yerine 9922 genel varsayılan bağlantı noktasını belirterek, özel yapılandırma gerektiren ana bilgisayar için bir ana bilgisayar stanz'ı ve varsayılan durum için genel bir ana bilgisayar stanza ekleyebilirsiniz. Bu gibi bir şey olur ...

Host 10.255.252.1
    Ciphers 3des-cbc
    KexAlgorithms +diffie-hellman-group1-sha1
Host *
    Port 9922

Girinti isteğe bağlıdır, ancak okunabilirliği büyük ölçüde artırdığını düşünüyorum. Boş satırlar ve ile başlayan satırlar #dikkate alınmaz.

Her zaman (veya çoğunlukla) bu sistemde aynı kullanıcı olarak oturum açarsanız, bu kullanıcı adını da belirtebilirsiniz:

Host 10.255.252.1
    Ciphers 3des-cbc
    KexAlgorithms +diffie-hellman-group1-sha1
    User enduser
Host *
    Port 9922

Host *Başlamak için ~ / .ssh / config'inizde hiçbir şey yoksa bir stanza eklemenize gerek yoktur, bu durumda sadece derlenmiş veya sistem genelinde varsayılanlar (genellikle / etc / ssh / ssh_config dosyasından) olacaktır. Kullanılmış.

Bu noktada, bu ana bilgisayara bağlanmak için ssh komut satırı basitçe azaltır

$ ssh 10.255.252.1

ve sisteminizdeki diğer tüm kullanıcılar ve sisteminizden diğer tüm ana bilgisayarlara yapılan bağlantılar değişikliklerden etkilenmez.


Benim durumumda Cipherçizgiyi kaldırmak zorunda kaldım , ama sonra çalıştı! Teşekkürler!
carlspring

Ssh_config man sayfasına ( link ) göre şifreler için config dosyası sözdizimi "Cipher s " dir ( sondakileri not alın).
MikeV

28

Tamam man sayfasını okudum ve anladım.

Config dosyamı değiştirmek istemedim ve bu yüzden bana -cseçeneği gösteren man sayfasındaki "şifre" terimini aradım ; bu şifreleme türünü belirtmeme izin veriyor. bitiş komutu şuydu:

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc enduser@10.255.252.1

4
El ile şifre seçme konusunda dikkatli olun, ne yaptığınızı bilmiyorsanız (zayıf bir oyuncu) çok kolay bir şekilde zayıf (birini) seçiyor olabilirsiniz.
heemayl

Aynen @heemayl. 3DES-CBC o kadar da kötü değil, ama en azından OpenSSH'nin son sürümleri tarafından desteklenen ve tüm amaç ve amaçlarla tamamen kırılmış şifreler var. Dikkatlice basmak.
17'de CVn

3

Son zamanlarda, Ubuntu'nun daha yeni bir sürümüne bağlanmak için PuTTY kullanarak bu sorunu yaşadım. PuTTY'nin daha önceki sürümlerinde şifreleri güncellememiş görünüyor. Bu yüzden PuTTY'nin en son sürümünü indirmek sorunu çözdü. Bu başka bir çözüm olabilir.


1
Her ne kadar çoğu zaman yönlendiriciler güncel tutulmuyor ya da üreticiler tarafından çok iyi desteklenmiyor.
Guy

0

MacOSX ve CLI komutları için başka bir cevap (örneğin, SFTP): bu makaleye bakın: @ http://www.openssh.com/legacy.html (OpenSSL Legacy Options). Bu makaledeki bilgilerle, özellikle de "~ / .ssh / config" dosyasındaki bir yapılandırma parametresinin ayarlanmasıyla çözülen "pazarlık yapılamadı" hatası alıyorum.

BTW, hedef SFTP sunucum (benim yönetimim altında değil) sonunda TLS 1.0'ı (SSL şifreleme seçeneği) kapattığında ve TLS 1.1 veya 1.2 gerektirdiğinde bu hatayı aldım.

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.