В организациях очень часто преследуют мысль "Ну работает железяка и пусть работает", зачем ее менять? А вот о том, что администраторам нужно ею управлять - это уже вопрос становится вторичным. Таким образом, зачастую набирается гора старенького железа, которой нужно управлять по SSH.
Практическая ситуация. Имеется устаревшее устройство cisco 3800 доступное по протоколу sshv2. При потытке залогинится
ssh -l admin x.x.x.x
получаем ошибку:
Unable to negotiate with x.x.x.x port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
Это значит, что клиент и сервер не могут договориться об алгоритме обмена. Сервер предлагает лишь diffie-hellman-group1-sha1, а клиент по умолчанию его не использует (начиная с Openssh 7.0)
Поэтому в /home/user/.ssh конкретного пользователя создаем/редактируем файл config в который добавляем
Host x.x.x.x KexAlgorithms +diffie-hellman-group1-sha1
Повторяем попытку подключения и получаем следующую ошибку:
Unable to negotiate with x.x.x.x port 22: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
В данном случае сервер предлагает использовать aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc шифрование. Добавляем эту строку в config. Итоговый конфиг выглядит так:
Host x.x.x.x KexAlgorithms +diffie-hellman-group1-sha1 Ciphers aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc
Повторяем попытку подключения. В результате должно появится приглашение ввести пароль
Дополнительная инфа по ssh касательно подключения к устаревшим устройствам
Александр Черных
системный администратор