[curl] 사용자 이름과 비밀번호로 cURL을 사용하십니까?

사용자 이름 / 암호가 필요한 URL에 액세스하고 싶습니다. 컬로 액세스하려고합니다. 지금 나는 다음과 같은 일을하고있다 :

curl http://api.somesite.com/test/blah?something=123

오류가 발생합니다. 위의 명령과 함께 사용자 이름과 비밀번호를 지정해야한다고 생각합니다.

어떻게해야합니까?



답변

-u플래그를 사용하여 사용자 이름을 포함하면 curl에서 암호를 묻습니다.

curl -u username http://example.com

명령에 암호를 포함시킬 수도 있지만 bash 기록에 암호가 표시됩니다.

curl -u username:password http://example.com


답변

하는 것이 더 안전합니다 :

curl --netrc-file my-password-file http://example.com

… 명령 줄에 일반 사용자 / 암호 문자열을 전달하는 것은 좋지 않습니다.

비밀번호 파일의 형식은 다음과 man curl같습니다.

machine <example.com> login <username> password <password>

노트 :

  1. 기계 이름은 포함 하거나 유사 해서는 안됩니다https:// ! 호스트 이름 만
  2. machine‘, ‘ login‘및 ‘ password‘ 단어 는 키워드 일뿐입니다. 실제 정보는 키워드 뒤에 나오는 것입니다.

답변

또는 같은 것이지만 다른 구문

curl http://username:password@api.somesite.com/test/blah?something=123


답변

다음과 같이 작성하여 사용자 이름을 보낼 수도 있습니다.

curl -u USERNAME http://server.example

그러면 Curl에서 암호를 묻고 화면에 암호가 표시되지 않습니다 (또는 명령을 복사 / 붙여 넣기해야하는 경우).


답변

스크립트에서 암호를 안전하게 전달하려면 (즉, ps auxf 또는 로그와 함께 표시되지 않도록) -K- 플래그 (stdin에서 구성 읽기)와 heredoc을 사용하여 암호를 수행 할 수 있습니다.

curl --url url -K- <<< "--user user:password"


답변

일반적으로 CURL 명령은

curl https://example.com\?param\=ParamValue -u USERNAME:PASSWORD

비밀번호가 없거나 비밀번호를 요구하는 명령 프롬프트를 건너 뛰려면 비밀번호 섹션을 비워 두십시오.

curl https://example.com\?param\=ParamValue -u USERNAME:


답변

curl -X GET -u username:password  {{ http://www.example.com/filename.txt }} -O