wget: 서버에서 오류를 반환함: HTTP/1.1 401 BusyBox에서 승인되지 않음

wget: 서버에서 오류를 반환함: HTTP/1.1 401 BusyBox에서 승인되지 않음

Axis Camera API 관련 질문은 axis 개발자 커뮤니티 포럼에 문의해야 한다는 것을 알고 있지만 질문은 http 웹 액세스에 대한 일반적인 것 같으므로 여기에서 도움을 얻으려고 합니다.

Axis IP 카메라를 로컬 네트워크에 연결했습니다. BusyBox(동일한 로컬 네트워크에 내장된 보드)에서 wget/curl 명령을 통해 카메라 API에 액세스하는 데 문제가 있습니다.

Windows cygwin의 wget 명령에서 API를 통해 카메라에 액세스하면 유효한 응답이 제공됩니다.

admin@LAPTOP /cygdrive/c/axis $ wget -O imageformat.txt 'http://root:[email protected]/axis-cgi/param.cgi?action=list&group=Properties.Image.Format'
    --2021-06-30 11:13:07--  http://root:*password*@192.168.0.90/axis-cgi/param.cgi?action=list&group=Properties.Image.Format
    Connecting to 192.168.0.90:80... connected.
    HTTP request sent, awaiting response... 401 Unauthorized
    Authentication selected: Digest realm="AXIS_ACCC8E6E45B0", nonce="XTNm1/7FBQA=2e3d1152262381d33e3cf6abe6c728db4921c928", algorithm=MD5, qop="auth"
    Reusing existing connection to 192.168.0.90:80.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [text/plain]
    Saving to: ‘imageformat.txt’
    
    imageformat.txt      [ <=>       ]      47  --.-KB/s    in 0s
    
    2021-06-30 11:13:07 (470 KB/s) - ‘imageformat.txt’ saved [47]

그러나 BusyBox 셸의 wget/curl 명령에서 동일한 결과를 얻으려고 하면 "Error: HTTP/1.1 401 Unauthorized" 메시지와 함께 실패하고 카메라 자격 증명(사용자 이름/비밀번호)이 정확하다고 확신합니다. 동일한 자격 증명을 사용하여 브라우저 및 Windows cygwin 셸에서 카메라에 액세스할 수 있습니다.

root@admin:~# curl 'http://root:[email protected]/axis-cgi/param.cgi?action=list&group=Properties.Image.Format'
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>

root@mainboard-sbs:~# wget -O imageformat.txt 'http://root:[email protected]/axis-cgi/param.cgi?action=list&group=Properties.Image.Format'
Connecting to 192.168.0.90 (192.168.0.90:80)
wget: server returned error: HTTP/1.1 401 Unauthorized

무엇이 문제일까요? busybox의 wget에 인증/인증서 매개변수가 누락되었나요?

Version on windows machine:
admin@LAPTOP /cygdrive/c/axis $ wget --version
GNU Wget 1.21.1 built on cygwin.

Version on busybox machine:
root@admin:~# wget
BusyBox v1.24.1 (2019-02-19 13:37:55 IST) multi-call binary.

답변1

그래서 언젠가 다른 사람에게 도움이 될 수 있을지 궁금해서 제 질문에 대한 답변을 게시합니다...

busybox(v1.24.1)와 함께 제공되는 wget(v1.18)은 모든 기능을 갖춘 wget이 아니며 최소한의 스위치로 설치되므로 wget Recipe를 v1.21.1로 업데이트하면 해당 문제가 해결됩니다.

관련 정보