Як виправити: В OpenSSH 7.0 не знайден відповідний метод обміну ключами
Після поновлення SSH до нової версії (7.0), при спробі під’єднатися до мого сервера за допомогою SSH, Я отримую наступне повідомлення:
Unable to negotiate with 192.168.1.1 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Чим викликана ця проблема
У OpenSSH 7.0 алгоритм ключа diffie-hellman-group1-sha1
за замовчуванням виключений, тому що він слабкий і в теорії схильний Logjam атаці. Дивіться сторінку www.openssh.com/legacy.html для отримання додаткової інформації.
Якщо клієнт і сервер не можуть домовитися про взаємне наборі параметрів, то з’єднання не буде встановлено. OpenSSH (7.0 і вище) покаже таке повідомлення про помилку:
Unable to negotiate with host: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
У цьому випадку клієнтові і серверу не вдалося узгодити алгоритм обміну ключами, оскільки сервер запропонував тільки один метод diffie-hellman-group1-sha1
.
Як це виправити
Кращим рішенням для вирішення цієї ситуації буде оновлення/налаштування сервера для того, щоб не використовувати застарілі алгоритми. Якщо ж це неможливо, то можна змусити клієнта знову включити алгоритм обміну ключами diffie-hellman-group1-sha1
за допомогою -oKexAlgorithms=+diffie-hellman-group1-sha1
опції в командному рядку:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@host
або в файлі ~/.ssh/config
:
Host somehost.example.org
KexAlgorithms +diffie-hellman-group1-sha1
Якщо ця стаття допомогла вам, будь ласка, залиште коментар
Дякую за прочитання!
Arthur is a designer and full stack software engineer. He is the founder of Space X-Chimp and the blog My Cyber Universe. His personal website can be found at arthurgareginyan.com.