Я не можу підключитися по ssh до сервера, який запитує метод обміну ключами diffie-hellman-group1-sha1
:
ssh 123.123.123.123
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
**Як увімкнути метод обміну ключами diffie-hellman-group1-sha1
у Debian 8.0?
Я спробував (як запропоновано тут)
додати наступні рядки до мого `/etc/ssh/ssh_config
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Шифри 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
регенерувати ключі за допомогою
ssh-keygen -A
перезапустіть ssh за допомогою
сервісним перезапуском ssh
але все одно отримуємо помилку.
На сайті OpenSSH є сторінка, присвячена застарілим проблемам, подібна до цієї. На ній пропонується наступний підхід, на стороні клієнта:
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123
або більш постійно, додавши
Host 123.123.123.123
KexAlgorithms +diffie-hellman-group1-sha1
до ~/.ssh/config
.
Це увімкне старі алгоритми на клієнті, дозволяючи йому підключатися до сервера.
Я спробував це рішення, але моя проблема полягала в тому, що у мене було багато (застарілих) клієнтів, які підключалися до мого нещодавно оновленого сервера (ubuntu 14 -> ubuntu 16).
Зміна з openssh6 -> openssh7 відключила за замовчуванням метод обміну ключами diffie-hellman-group1-sha1
.
Прочитавши це і це я прийшов до висновку, які зміни потрібно внести в файл /etc/ssh/sshd_config
:
#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc
Але більш широкий успадкований набір змін (взятий з тут)
#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr