Проблема звучить як помилка на стороні сервера. Коли клієнт надсилає список шифрів, сервер opensh, ймовірно, розраховує, що зможе прочитати список у єдиному системному виклику.
Якщо список підтримуваних шифрів довший, ніж можна передавати в одному пакеті, сервер може отримати менше байтів у першому дзвінку, ніж очікувалося. Правильною поведінкою на сервері було б виконати ще один дзвінок, щоб отримати решту байтів. Але з опису проблеми, який з'являється, сервер замість цього закриває з'єднання, коли не отримав одразу повний список шифрів. Коли прийде наступний пакет від клієнта, сервер надішле скидання з'єднання клієнту.
Налаштування клієнта на використання більш короткого списку шифрів може призвести до помилки. Клієнт opensh шукає список шифрів у таких місцях:
- У командному рядку використовуйте або -c cipher_spec або -o Ciphers = cipher_spec
- У ~ / .ssh / config, вказавши Ciphers cipher_spec у відповідному розділі хоста або перед першим хостом.
- В / etc / ssh / ssh_config використовуючи той же формат, що і ~ / .ssh / config
- Список за замовчуванням, вбудований у клієнт під час компіляції.
Два файли конфігурації - це відповідно налаштування кожного користувача та загальної системи. Використання, Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
як запропонував Ерік, має працювати добре.
telnet ip.or.name.of.offending.server 22
?