Curl не работает linux

Обновлено: 04.07.2024

Если я SSH на сервер как root & call

. я получаю следующий ответ .

Однако, если я вхожу в систему под учетной записью cPanel (также используется при запуске через веб-сервер), я получаю следующее .

Я не смог найти однозначного ответа на эту проблему, и моя хостинговая компания отказывается помогать, так как она "Out of support", хотя на прошлой неделе она работала нормально!

. но я не могу найти информацию о том, как я могу получить эту работу всей системы на моем сервере CentOS.

Информация

Оказывается, проблема была в том, что скрипт запускался из cPanel «электронная почта, отправленная в сценарий», поэтому работал как пользователь, так что это была проблема пользователя, но никак не влияла на веб-сервер.

Причина, по которой пользователь не смог получить доступ к каталогу/etc/pki, была вызвана тем, что у него был только ssh-доступ в тюрьму. Как только я предоставил полный доступ, все заработало нормально.

Спасибо за информацию, хотя, Реми.

Если вы недавно пришли сюда, как и я, при поиске той же ошибки напрасно, вы можете обнаружить, что это обновление NSS, вызывающее сбой в CentOS. Протестируйте, запустив yum update, и посмотрите, есть ли ошибки, curl также создает эту ошибку. Решение достаточно простое, просто установите NSS вручную.

Если вы похожи на меня, выдается ошибка, подобная этой:

Это заняло некоторое время, но выяснилось, что это не сертификат CA, потому что, воссоздав их и проверив все настройки, я исключил их. Это мог быть libcurl, поэтому я отправился на поиски обновлений.

Следующим шагом (вероятно, следовало быть моим первым) было проверить, что все было обновлено, просто запустив yum.

Это дало мне утвердительный ответ, что в игре возникла более серьезная проблема: Downloading Packages: error: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: BAD Problem opening package nss-softokn-freebl-3.14.3–19.el6_6.x86_64.rpm Я начал читать о проверке сертификата с помощью NSS и о том, как это новое обновление может быть связано с моими проблемами .. Итак, yum не работает. Это потому, что nss-softokn- * нужен nss-softokn-freebl- * нужен друг другу для работы. Проблема в том, что они не проверяют версию друг друга на совместимость, и в некоторых случаях это приводит к нарушению yum . Давайте исправим вещи:

Попробуй еще раз и удачи!

Убедитесь, что у вас установлены правильные права на пакет сертификатов CA. Как правило, это означает доступ для чтения для всех к файлам CA в каталоге/etc/ssl/certs, например /etc/ssl/certs/ca-certificates.crt.

Вы можете увидеть, какие файлы были настроены для вас версия curl с

Здесь вам нужен доступ для чтения к /etc/ssl/certs/ca-certificates.crt

И то же самое здесь.

Ошибка связана с повреждением или отсутствием файлов сертификата цепочки SSL в каталоге PKI. Вам необходимо убедиться, что файлы находятся в комплекте, выполнив следующие действия: В вашей консоли/терминале:

теперь перезапустите ваш сервис: Мой пример этой команды:

очень хорошо хорошо выглядеть

У меня была похожая проблема с ошибкой № 77 на CentOS7. Мне не хватало мягкой ссылки /etc/pki/tls/certs/ca-bundle.crt , которая установлена ​​с RP-CA-сертификатами.

'curl' пытался открыть этот путь, чтобы получить Центры сертификации. Я обнаружил с:

и ясно увидел, что открывать не удалось по этой ссылке.

Мое исправление было:

Это должно настроить все снова. Если у вас есть частные ЦС для корпоративного или самозаверяющего использования, убедитесь, что они находятся в/etc/pki/ca-trust/source/anchors, чтобы их можно было добавить заново.

Заметил эту проблему, когда я неправильно настроил путь хранилища ключей. После исправления пути хранилища ключей все заработало.

Задача чекать страницу на изменения. Я правильно понимаю что эти программы ничего не кешируют и всегда отдают актуальную страницу? Не может оказаться так что они дергают адрес из кеша и я не узнаю актуальное обновление?

Всё хорошо. А теперь попробуем то же самое с помощью curl :

Совершенно аналогичным образом, lynx и elinks как раз работают, а w3m , links и обычные браузеры как раз нет.

Update 2: призываю всех проголосовать за Issue 908132: FR: Support for Encrypted SNI (ESNI).

Гугль не помог. Пробовал на иных приложениях, удаляет, ставит без проблем.

Пытаюсь установить pip на centos 5, но после команды

Инфа по версиям:

Предполагаю что проблема в том что curl вяжется к старой версии openssl, но как фиксить не понимаю

Если просто через curl то ошибка 1020

SFTP. Курлом пытаюсь скачать файл с авторизацией по ключу.

Как узнать что именно не так? Если подключаться по SSH с этим ключом – пускает. Если курлом пытаться стянуть файл с авторизацией по логину-паролю – пускает.

Открытю часть ключа деллал ssh-keygen-ом из закрытого, потому что курл сам не осилил почему-то

Может важно: сервер OpenSSH for Windows, опыты провожу, естессна, под онтопиком.

Добрый день вам знатоки! Являюсь начинающим познавателем ОС LINUX поэтому просьба сильно не удивляться моим вопросам )

Ситуация: Есть web-сервис, который работает на tomcat. Данный сервис пользуется КриптоПро CSP 4,0. Ввиду окончания действия сертификатов, крипта пытается напрямую их скачать. И все бы ничего, но в организации прямой доступ в инет закрыт и приходится рассматривать вариант пройти через прокси. Здесь стоит уточнить, что крипта пытается скачать серты посредством curl, вивду чего была добавлена переменная окружения для соответствующего пользователя. Результат: посредством curl из командной строки, сертификат качается (разумеется, под нужным пользователем), но вот беда: когда tomcat пытается инициализировать крипту (под данным пользователем все качается) и та начинает качать серты, то в логах крипты видно ошибки вида «UrlRetriever failed (CURLcode: 12029 URL:…», т.е. скачать не получается ввиду отсутствия доступа к сертификату. Т.е. если говорить проще, то все качается нормально черзе curl, а через tomcat/криптопро - нет. Как предположение: прописаная прокся в переменной окружения пользователя, работает только из консоли (интерактивного сеанса пользователя). Вопрос: насколько верно данное утверждение и что в таком случае делать? Если вариант - бред, то какое возможно решение?

я выполняю следующую команду:

curl: (56) Failure when receiving data from the peer

можно ли как то сделать так что бы сервер считал curl безопасным? или есть еще какие то библиотеки для Си что бы можно было отправлять письма?

Мне нужно пометить все письма в INBOX как прочитанные. Пользуясь хелпами curl написал такое:

И направил его автору письмо, где пообещал прибить его, автор ответил и удивительно, но и ему ответили. Зацените как его порвало:

Мне плевать. Твое дерьмовое ПО послужило вектором атаки, из-за которой я потерял многомиллионный оборонный проект.

Они использовали твое дерьмовое ПО, чтобы украсть root у меня и у многих других. Из-за этого только на прототипировании я потерял более 15 тысяч долларов.

С октября я живу в изоляции — всему виной твое дерьмовое ПО, из-за которого долбаная Google-шпана может развести меня, пытаясь выманить из изоляции, поскольку они слишком бедны, чтобы представлять, что делают.

Знаешь, что я сделал, чтобы заслужить это? Я пытался разработать торговый путь в сфере технологий и разработать методики обучения на основе проектов, чтобы детки были при деле. И знаешь, кто во всех этих файлах? Ты. Это отвратительно. Меня взломали в октябре 2020, перехватив трафик федерального сервера, и всем этим я обязан тебе.

Мне пришлось сидеть и смотреть вот на это:

1. fireeye в октябре 2020;

2. Solarwinds в октябре 2020;

3. взлом модемов Zyxel в октябре 2020;

4. множество векторов атаки на Sigover с помощью XML injection;

5. стохастическая шаблонизация в JS с использованием выражений сравнения для записи в регистры данных;

6. 50-миллиардные компании охотятся за мной, поскольку я разоблачил их дерьмовое вредоносное ПО.

И меня взломали и перенаправили важную корреспонденцию в другое место. Какой-то больной ублюдок разрушил мою жизнь с помощью кода с твоим именем. Из-за этой ситуации я даже не могу уехать из страны; если уж ты смог запилить код, который гадит всем подряд, то мне совершенно наплевать на твои чувства по этому поводу.

Ты построил гоночный болид для Формулы-1, а ключи бросил шпане с раздутым эго. А теперь из-за всего этого мусора мне приходится разбираться с уязвимостями нулевого дня в Win10.

Я потерял свою семью, свою страну, своих друзей, свой дом и 6 лет работы, пытаясь построить лучшее будущее для потомков. И во всем этом виноват твой код. Этот код используется для того, чтобы похищать root и внедрять эксплойты. Этот код используется для шантажа.

Так что я ни капельки не расстроен. Ты прекрасно представлял себе возможности этого кода. И думал, что все это большая шутка. А я не смеюсь. Я уже давно прошел эту точку. /- Al

Еще в одном письме такой кусок:

Есть проект: Анализ риска военных операций в урбанизированной местности с помощью широкополосного анализа электромагнитного спектра с использованием различных преобразований Фурье. Ты и этот David Krider, кем бы он ни был, вы часть всего этого.

- Взломы федеральных серверов;

- соучастие в покушение на убийство;

- мошенничество; и т.д.

Как я понял, мужик в штатах потерял работу из-за того, что его или даже его заказчиков расхакали с использованием curl. Его вывод - автор curl - большая бяка, плохой парень. Хотя curl даже не хакерский инструмент, просто удобен для автоматизации некоторых сетевых операций. А может это и вообще бред сумасшедшего, начитавшегося про взломы и каким-то образом вообразившего, что curl как-то связан с ними.


Запускаем командную строку, переходим в директорию curl/bin и пытаемся скачать главную страницу Google:

Следовать за редиректами

Сохранить вывод в файл

Чтобы сохранить вывод в файл, надо использовать опции -o или -O :

  • -o ( o нижнего регистра) — результат будет сохранён в файле, заданном в командной строке;
  • -O ( O верхнего регистра) — имя файла будет взято из URL и будет использовано для сохранения полученных данных.

Сохраняем страницу Google в файл google.html :

Сохраняем документ gettext.html в файл gettext.html :

Загрузить файл, только если он изменён

Команда ниже загрузит файл archive.zip , если он изменялся до 20 августа 2018 года:

Получение и отправка cookie

Cookie используются сайтами для хранения некой информации на стороне пользователя. Сервер сохраняет cookie на стороне клиента (т.е. в браузере), отправляя заголовки:

А браузер, в свою очередь, отправляет полученные cookie обратно на сервер при каждом запросе. Разумеется, тоже в заголовках:

Передать cookie на сервер, как будто они были ранее получены от сервера:

Чтобы сохранить полученные сookie в файл:

Файл cookie.txt имеет вид:

Получение и отправка заголовков

Если содержимое страницы не нужно, а интересны только заголовки (будет отправлен HEAD запрос):

Посмотреть, какие заголовки отправляет CURL при запросе, можно с помощью опции -v , которая выводит более подробную информацию:

  • Строка, начинающаяся с > означает заголовок, отправленный серверу
  • Строка, начинающаяся с < означает заголовок, полученный от сервера
  • Строка, начинающаяся с * означает дополнительные данные от CURL
Если этой информации недостаточно, можно использовать опции --trace или --trace-ascii .

Отправка данных методом POST

Параметр --data аналогичен --data-ascii , для отправки двоичных данных необходимо использовать параметр --data-binary . Для URL-кодирования полей формы нужно использовать --data-urlencode .

Если значение опции --data начинается с @ , то после него должно быть имя файла с данными (или дефис — тогда будут использованы данные из стандартного ввода). Пример получения данных из файла для отправки POST-запроса:

Содержимое файла data.txt :

Массив $_POST , который будет содержать данные этого запроса:

Пример URL-кодирования данных из файла перед отправкой POST-запроса:

Содержимое файла username.txt :

Массив $_POST , который будет содержать данные этого запроса:

Загрузка файлов методом POST

Со временем возникла необходимость через формы отсылать еще и файлы. Тогда консорциум W3C взялся за доработку формата POST запроса, в результате чего появился документ RFC 1867. Форма, которая позволяет пользователю загрузить файл, используя алгоритм multipart/form-data , выглядит примерно так:

Скрипт upload.php , который принимает данные формы:

Работа по протоколу FTP

Если заданный FTP путь является директорией, то по умолчанию будет выведен список файлов в ней:

Сurl – утилита командной строки для скачивания и загрузки данных. Она выросла из проекта шведского программиста Даниэля Стенберга. Изначально в середине 90-х, на заре развития Интернета, он разрабатывал бота, который должен был загружать с веб-страницы курсы валют и сообщать пользователям IRC эквивалент шведских крон в долларах США. Со временем проект развивался, появлялась поддержка различных протоколов и новые функции. Теперь curl используется для передачи любых данных и ряда других полезных задач. Рассмотрим основные моменты работы с этим инструментом.

Синтаксис и опции curl

Синтаксис команды следующий:

В качестве аргумента задается, как правило, URL скачиваемого файла. Основные опции перечислены ниже

Основные опции мы рассмотрим на простых примерах.

Просмотр версии curl



Скачивание файла

Если вам требуется скачать файл, запустите curl с опцией –O или –o. Первая из них сохраняет файл в текущей рабочей директории под тем же именем, что и в удаленном месторасположении. Вторая опция позволяет вам указать другое имя и/или место для скачивания.

Cохранение файла под исходным именем (yourfile) в текущей рабочей директории.

Cохранение файла под именем newfile в директории /tmp/examplе/.

Возобновление прерванной загрузки

Если скачивание по какой-то причине было прервано (например, пользователь нажал Ctrl+C), вы легко можете возобновить его с момента остановки при помощи опции -C – (дефис, С, тире):

Скачивание нескольких файлов

Если использовать curl вместе с командой xargs, можно скачивать файлы в соответствии со списком URL, заданном в файле (в данном примере listurls.txt):

Использование прокси-сервера

Если ваш прокси-сервер не требует аутентификации, опцию -U user:qwerty1234 указывать не нужно.


Также эту информацию можно получить, воспользовавшись функциями браузера для разработчиков.

cURL POST-запросы с параметрами

Этим приемом можно пользоваться для симуляции работы обычных веб-форм.

Следующая команда скачивает в текущую рабочую директорию файл yourfile с удаленного FTP-сервера ftp://yourftpserver (имя пользователя user, пароль qwerty1234):

Если FTP-сервер поддерживает анонимный вход, параметр –u с именем пользователя и пароля указывать не нужно.

Загрузка файлов на FTP-сервер

Для загрузки локального файла mylocalfile.tar.gz воспользуйтесь следующей командой:

Указание агента пользователя

Запись файлов cookie с веб-сайта

Отправка файлов cookie на сайт

Полученные в предыдущем примере файлы cookie можно использовать в дальнейших запросах к тому же самому сайту:

Изменение разрешения имен

Ограничение скорости скачивания

Заключение

Мы рассмотрели краткую историю появления curl и наиболее характерные примеры применения этой команды. Для более подробной информации можно обратиться к соответствующей man-странице.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: