Curl не удалось прочитать файл known_hosts

Я пытаюсь загрузить файл с сервера Centos 6 с использованием другого сервера Centos 6 в качестве клиента и curl с протоколом scp , и я получаю этот вывод ошибки:

 $ curl -v -O scp://cz/path/to/file * About to connect() to cz port 22 (#0) * Trying 1.2.3.4... connected * Connected to cz (1.2.3.4) port 22 (#0) * Failed to read known hosts from /home/cpn/.ssh/known_hosts * SSH host check: 0, key: AAAAB3NzaC1yc2EAAAABIwAAAQEAyeeDgYFsHi3Ks3PxCXt69IHBr7yNII720sXOm9WKIdGnwPf7QHbLsMf41mctcGRSJ2yO2EXpNEbZQhdUqs3oImdTn2OHF/K8STK1GXMVseusgmPuQWBt36AVPon7h9lSCjtxt+1UpFJoireXvhUDlgg9i1C9QbE04GAmA7vMOmtcVt3/3F6X/hKhOZvHj1gu5+RzCO8fXo2R8XeRoN0GcU2jVOhug0G+hXAiHymh5JzVm4YlCzsNIv3mDOF2lZRLdkor5FDKjBY8/o/5O8U0lWm4ie2S7qDppqCJP2SnNTWlaM3k5HDmdyEKKZ0lV+qG33q3ADZxjBeIKQtWLZfC3w== * SSH authentication methods available: publickey,gssapi-keyex,gssapi-with-mic,password * Using ssh public key file /home/cpn/.ssh/id_dsa.pub * Using ssh private key file /home/cpn/.ssh/id_dsa * SSH public key authentication failed: Username/PublicKey combination invalid * Authentication failure * Closing connection #0 

Я могу загрузить файл с помощью scp без вопросов:

 $ scp cz:/path/to/file . 

Я могу войти на сервер с ssh снова не задано никаких вопросов

 $ ssh cz 

Существуют ключи ssh-rsa и ssh-dss в файле authorized_keys сервера

На что именно жалуются? Мое единственное предположение, что curl хочет ключ dsa в файле known_hosts клиента. Если это так, то как его создать? Или как заставить curl искать ключ rsa вместо этого в этом файле?

Обновить

У клиента:

 $ ls -l /home/cpn/.ssh/known_hosts -rw-r--r--. 1 cpn cpn 1970 Nov 12 16:12 /home/cpn/.ssh/known_hosts 

One Solution collect form web for “Curl не удалось прочитать файл known_hosts”

Я могу хотя бы объяснить, что, вероятно, происходит:. после того как разрешения на выходе ls -l указывают на наличие политики SELinux, которая переопределяет права доступа к файлам на основе того, какая программа обращается к файлу. Используйте ls -Z ~/.ssh/known_hosts для отображения политики файла.

Предположительно /usr/bin/ssh и его сопутствующие программы ( ssh-keygen , scp и т. Д.) Являются единственными программами, которым разрешен доступ к этому файлу. Я скептически отношусь к этой политике: иногда ~/.ssh/known_hosts иногда редактировать ~/.ssh/known_hosts вручную. Однако я не понимаю, почему curl хотел бы прочитать этот файл вместо того, чтобы позволить ssh и друзьям это делать.

Вы можете использовать команду chcon для изменения политики для этого файла и restorecon для восстановления политики по умолчанию. Дополнительную информацию о SELinux см. В викторине CentOS .

  • Я могу ssh на удаленную машину, но я не могу использовать scp для копирования локальных файлов на удаленную машину
  • Передача файлов с помощью SSH и переключателя
  • scp не работает без пароля
  • scp на локальную машину после SSHing
  • Интерактивный ssh ​​работает, но не rsync или scp, на OSX
  • Почему мой счетчик скинов на 8 МБ по сравнению с локальной сетью?
  • scp-файлы из определенной папки параллельно
  • SSH сломанная трубка, неверный код аутентификации сообщения
  • Приветственный баннер, останавливающий scp
  • Почему scp настолько медленный и как сделать это быстрее?
  • ошибки, пытающиеся передать через SCP
  • Linux и Unix - лучшая ОС в мире.