Полгода скрипт успешно работал на Raspberry Pi OS x64 bullseye, но 5 дней назад вдруг стал ругаться «curl: (2) Failure establishing ssh session: -5, Unable to exchange encryption keys» при попытке отправить файл на SFTP!
В процессе изучения вопроса и общения с техподдержкой хостинга Бегет1) стало ясно, что не работает только curl2), тогда, как c подключением по ssh3) никаких проблем не было!
Хотя поддержка еще в самом начале в числе прочего и рекомендовала обновить libssh2, я, посмотрев, что у меня установлена последняя доступная в репозитории bullseye версия «libssh2-1/oldstable 1.9.0-2 armhf», все остальное тоже обновлено, и ssh работает, не придал этому особого значения.
Поддержка взяла таймаут на подумать, в результате чего сообщила, что «Ошибка возникает из-за того, что клиент и сервер не могут согласовать алгоритмы шифрования, вам нужно обновить openssh и настроить клиент так, чтобы он поддерживал алгоритмы ssh-ed25519 и rsa-sha2-256/rsa-sha2-512.»
Ну вот ни разу это не прояснило ситуацию, почему ssh работает, а curl – нет!
Зато я получил новые вводные для поиска в этих ваших Интернетах и, кто бы мог подумать, наткнулся на то, что 3 дня назад почему-то усердно не хотело искаться – достаточно свежую дискуссию в разделе «проблем» curl, описывающую абсолютно мою же проблему! Из нее я попал в другую дискуссию о «проблемах», но уже libssh2… Опять libssh2!
В общем, т.к. идей больше не было, а этот libssh2 попался на глаза уже второй раз, решил рискнуть и попробовать таки его обновить…
Но загвоздка в том, что, как уже говорил, в репозитории bullseye, более свежей версии нет! Зато она, версия «libssh2-1/stable,now 1.10.0-3+b1 arm64», есть в bookworm… Ну, ок, пробуем.
sudo -s
deb http://deb.debian.org/debian bookworm main contrib non-free
apt update
apt install libssh2-1
Собственно, и все. Далее можно убрать чужой репозиторий и проверять… у меня сразу же завелось и… тьху-х3, ничего, вроде, не сломалось!
nano /etc/apt/sources.list
.
Обсуждение