Инструменты пользователя

Инструменты сайта


raspberry_pi:pi_4_model_b:raspberry_pi_os:bash:curl:unable_to_exchange_encryption_keys

Ошибка curl: Failure establishing ssh session

Полгода скрипт успешно работал на 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… Ну, ок, пробуем.

  1. Заходим под суперпользователем

    sudo -s
  2. открываем список источников4)

    apt edit-sources
  3. добавляем в него источник

    deb http://deb.debian.org/debian bookworm main contrib non-free
  4. обновляем локальный список

    apt update
  5. и устанавливаем новую версию libssh2

    apt install libssh2-1
  6. автоматически подтянутся все нужные зависимости.

Собственно, и все. Далее можно убрать чужой репозиторий и проверять… у меня сразу же завелось и… тьху-х3, ничего, вроде, не сломалось!


Дисклеймер

  • Использование материалов данной базы знаний разрешено на условиях лицензии, указанной внизу каждой страницы! При использовании материалов активная гиперссылка на соответствующую страницу данной базы знаний обязательна!
  • Автор не несет и не может нести какую либо ответственность за последствия использования материалов, размещенных в данной базе знаний. Все материалы предоставляются по принципу «как есть». Используйте их исключительно на свой страх и риск.
  • Все высказывания, мысли или идеи автора, размещенные в материалах данной базе знаний, являются исключительно его личным субъективным мнением и могут не совпадать с мнением читателей!
  • При размещении ссылок в данной базе знаний на интернет-страницы третьих лиц автор не несет ответственности за их техническую функциональность (особенно отсутствие вирусов) и содержание! При обнаружении таких ссылок, можно и желательно сообщить о них в комментариях к соответствующей статье.
1)
Да, это партнёрская ссылка, которую я публикую крайне редко потому, что… Бегет офигительный хостинг и о нем просто не зачем и нечего более писать! Увы, но так. LOL
2)
Версия «curl/oldstable-security,now 7.74.0-1.3+deb11u10 arm64» – последняя доступная для bullseye.
3)
Так же последняя доступная – «openssh-client/oldstable,now 1:8.4p1-5+deb11u2 arm64».
4)
То же самое, что nano /etc/apt/sources.list.

Обсуждение

Ваш комментарий:
W R M T W A N B Y U Y P U​ H D O
 
Последнее изменение: 2023/11/12 19:54 — Николай Солошин