ssh Müzakere edilemiyor: “eşleşen şifre bulunamadı”, cbc'yi reddediyor


23

Uzak makineye ssh deniyorum, girişimi başarısız:

$ ssh -vvv admin@192.168.100.14
OpenSSH_7.7p1, OpenSSL 1.0.2o  27 Mar 2018
.....
debug2: ciphers ctos: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: ciphers stoc: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com,hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,zlib@openssh.com
debug2: compression stoc: none,zlib@openssh.com
debug2: languages ctos: 
debug2: languages stoc:
debug2: first_kex_follows 0 
debug2: reserved 0 
debug1: kex: algorithm: curve25519-sha256
debug1: kex: host key algorithm: rsa-sha2-512
Unable to negotiate with 192.168.100.14 port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Bildiğim kadarıyla günlüğünün son dizesini anladığımız kadarıyla, sunucu teklifler aşağıdaki 4 şifreleme algoritmaları birini kullanmak: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc. Görünüşe göre ssh istemcim hiçbirini desteklemediğinden sunucu ve istemci daha fazla pazarlık yapamıyor.

Ancak istemcim önerilen tüm algoritmaları destekliyor:

$ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
... and there are several more.

Ve ben açıkça böyle algoritmayı belirtirseniz:

ssh -vvv -c aes256-cbc admin@192.168.100.14

Sunucuya başarıyla giriş yapabilirim.

Benim ~/.ssh/configşifreyle ilgili herhangi bir yönerge içermiyor (aslında tamamen kaldırdım, ancak sorun devam ediyor).

Peki, istemci ve sunucu neden açık komutlarım olmadan hangi şifreyi kullanacağına karar veremiyor? İstemci, sunucunun desteklediğini aes256-cbcanlar, istemci kendi başına kullanabileceğini anlar, neden sadece kullanmıyor?

Bazı ek notlar:

GÜNCELLEME: sorun çözüldü

TelcoM açıkladığı gibi, sorun sunucudadır: sadece eski şifre algoritmalarını önerir. Hem istemci hem de sunucunun eski olmadığından emindim. Sunucuya giriş yaptım (bu arada, Synology, en son sürüme güncellendi) ve inceledim /etc/ssh/sshd_config. Bu dosyanın ilk (!) Satırı şuydu:

Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

Bu çok garip (satırın dosyada çok ilk olması), eminim daha önce dosyaya hiç dokunmadım. Ancak çizgiyi şu şekilde değiştirdim:

Ciphers aes256-ctr,aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

sunucuyu yeniden başlattı ( sshdyalnızca hizmeti nasıl yeniden başlatacağınızı bilmiyordum ) ve şimdi sorun gitti: Her zamanki gibi sunucuya ssh yapabilirim.


1
İlgili - unix.stackexchange.com/questions/333728/… - nasıl devre dışı bırakılacağı hakkında bilgi gösterir.
slm

3
Ben de aynı sorunu vardı ve kolayca web arayüzü (ssh benim için işe yaramadı beri ...), ancak DSM kontrol panelinde "Terminal -> gelişmiş ayarları" giderek ve "yüksek" profil - bazı nedenlerden dolayı, orada manuel bir seçim etkinleştirildim ... Umarım bu yaptığım ve unuttuğum bir şeydi ve önceki bir DSM güncellemesi tarafından yapılan bir şey değil! - seçenekler artık aes128-ctr, aes128-gcm, aes192 *, aes256 *, dhge-sha256, eğri25519-sha256, hmac-sha2-256
Zak

Yanıtlar:


16

-cbcAlgoritmalar bir saldırıya karşı savunmasız olduğu ortaya çıktı gelmiş. Sonuç olarak, OpenSSH'nin güncel sürümleri artık varsayılan olarak bu algoritmaları reddedecektir: şimdilik, ihtiyacınız varsa hala kullanılabilirler, ancak keşfettiğiniz gibi, bunları açıkça etkinleştirmeniz gerekir.

Başlangıçta bu güvenlik açığı keşfedildiğinde (2008 sonlarında, yaklaşık 10 yıl önce!) Bu algoritmalar yalnızca uyumluluk için öncelik listesinin arka ucuna yerleştirildi, ancak şimdi SSH'deki kullanımları bu algoritmaların bulunduğu bir aşamaya ulaştı varsayılan olarak devre dışıdır. Kriptografideki bu soruya göre.SE , bu kullanımdan kaldırma adımı 2014 yılında zaten oluyordu.

Mümkünse, SSH sunucunuzu güncellemek için lütfen bunu nazik bir hatırlatma olarak düşünün . (Ürün yazılımı tabanlı bir uygulama ise, donanımınız için güncellenmiş ürün yazılımının olup olmadığına bakın.)


2

Ssh yapılandırmanızı şu adresteki dosyadan güncelleyebilirsiniz: / etc / ssh / ssh_config

  1. Bir terminal başlatın.
  2. Hattı terminale yapıştırın: sudo nano /etc/ssh/ssh_config
  3. Şifrenizi girin. Enter tuşuna basın. SSH yapılandırma dosyası görüntülenecektir.
  4. Satırın yorumunu kaldırın: Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  5. Düğmesine basın Ctrl + X. Kaydetmek ve çıkmak için Enter tuşuna basın.

1

~ / .ssh / config içinde bir dosya oluşturun ve içeriğin altına yapıştırın

Host *
  SendEnv LANG LC_*
  Ciphers +aes256-cbc
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.