Назад | Перейти на главную страницу

Why can't curl retrieve the SSH host key (key: <none>)</none>

Некоторое время я использовал curl (с помощью git-ftp) и передавал только имя пользователя и sftp URL.

Аутентификация всегда будет работать косвенно через открытый ключ.

Внезапно curl больше не будет подключаться через SSH - по-видимому, потому, что он не получает ключ хоста и поэтому отклоняет соединение:

Trying {IP}... * Connected to host.example.com ({IP}) port 22 (#0) * SSH MD5 fingerprint: {Fingerprint} * SSH host check: 2, key: <none> * Closing connection 0

Почему curl не может получить ключ?

Связи с ssh -v работать и дать мне 2 ключа хоста, также curl --insecure буду работать.

libssh2 не поддерживает некоторые более поздние ключи, такие как ecdsa-sha2-nistp256 и ssh-ed25519.

Итак, если у вас уже есть один из этих ключей в .ssh / known_hosts, libssh2 завершится ошибкой. Но вы можете добавить еще один ключ, который поддерживает libssh2, например RSA:

Чтобы исправить это, получите открытый ключ RSA с удаленного хоста и добавьте его в свой known_hosts файл:

ssh-keyscan hostname.example.com >> ~/.ssh/known_hosts

Точный формат и расположение файла могут отличаться в зависимости от системы.

Я исправил проблему, заменив адрес ipv6 на домен внутри known_hosts файл.

Он уже существует в файле с именем known_hosts2 в том же каталоге, но я предполагаю, что этот файл на самом деле не читается ssh / curl.