wget에 사용자 이름과 비밀번호를 제공하려면 어떻게합니까?


157

wget을 통해 서버에 연결하려고했습니다.

wget http://<user>:<pass>@serveradress

그러나 wget이 응답합니다 : 잘못된 포트

서버가 포트 80에서 들어오는 트래픽을 수락한다는 것을 알고 있습니다.이 문제를 어떻게 해결할 수 있습니까?


나는 당신이 확실하게 user : pass @ name 구문을 사용할 수 있다고 생각하지 않습니다. wget대신 별도의 명령 행 옵션이 있으므로 :포트 번호로 문자열을 순진하게 구문 분석합니다 .
geekosaur

답변:


198

Wget <pass>@serveraddress은 포트로 해석 됩니다. 사용자 이름과 비밀번호를 지정하려면 --user--password스위치를 사용하십시오 .

wget --user user --password pass http://example.com/

보낸 사람 man wget:

--user=user

--password=password

FTP 및 HTTP 파일 검색 모두에 대한 사용자 이름 사용자 및 비밀번호 비밀번호 를 지정하십시오 . 이러한 매개 변수는 사용하여 대체 할 수 있습니다 --ftp-user--ftp-passwordFTP 연결 및 옵션을 --http-user--http-passwordHTTP 연결을위한 옵션을 제공합니다.


48
--ask-passwordNabil Kadimi의 답변에 설명 된 옵션을 선호합니다 . 다른 줄에 비밀번호를 보이지 않게 입력하고 쉘 기록에 비밀번호를 저장하지 않도록합니다.
케빈

8
@Kevin 적어도 하나 이상의 공백으로 줄을 시작하면 (이는 Nabil 과 같이 ) 쉘 히스토리에 저장하지 않아도됩니다 . 비밀번호 / 리소스가 민감한 경우 디스크에 저장하는 것보다 암호화되지 않은 HTTP / FTP / 어떤 연결에 대해 더 걱정해야합니다.
Lekensteyn

셸 기록보다 암호화되지 않은 암호 문제가 더 중요한 경우에 동의하지만 보안 프로토콜에도 도움이됩니다. 또한 온라인 스파이보다 컴퓨터에 액세스 할 수있는 스파이 (액세스하는 콘텐츠에 관심이 없거나 관심이없는 스파이)에 대해 더 걱정해야하는 경우가 있습니다. 아래의 --ask-password 답변은 대화식 사용에 더 좋고, 여기서 --password 답변은 자동화에 더 쉽습니다. .wgetrc 및 chmod에 대한 Ixgr의 의견은 경우에 따라 흥미 롭습니다.
youen

설명서를 이해 했으므로 pass는 포트로 해석되지 않습니다. "당신은 또한 URL에서 사용자 이름과 비밀번호를 인코딩 할 수 있습니다 : http://user:password@host/path" "- 수동

104

3 가지 옵션이 있으며 여기에는 내장 느낌 이외의 특정 순서가 없습니다.

1 / 비밀번호는 누구나 볼 수 있습니다 (명령 사용 history)

wget --user=remote_user --password=SECRET ftp://ftp.example.com/file.ext

비밀번호는 ps, top, htop 등에서도 볼 수 있습니다.

2 / 비밀번호는 어깨 너머로 보이는 누구나 볼 수 있습니다

 wget --user=remote_user --password=SECRET ftp://ftp.example.com/file.ext

명령 앞에 공백이 있으면 기록에 저장되지 않습니다.

비밀번호는 ps, top, htop 등에서도 볼 수 있습니다.

3 / 비밀번호는 귀하를 포함한 다른 사람에게는 보이지 않습니다

wget --user=remote_user --ask-password ftp://ftp.example.com/file.ext
Password for user `remote_user': [SECRET (not visible)]

6
기록에는 표시되지 않지만 프로세스가 실행되는 동안 ps, top, htop 또는 유사한 명령을 수행하는 모든 사람에게 표시됩니다.

4
@AbdennourTOUMI 특히 요청과 함께 암호를 보내는 경우 인증서 검사를 비활성화하는 이유는 무엇입니까? 그것은 일반적으로 권장되지 않습니다. 로그 또는 / proc의 비밀번호를 "숨기는"경우 wget 맨 페이지에 추가 옵션이 있습니다. "비밀번호가 표시되지 않도록하려면 .wgetrc 또는 .netrc에 저장하고 해당 파일을 "chmod"를 가진 다른 사용자. "
lxgr

2
경우 --ask-password사용할 수 없거나, 비밀번호를 매번 입력하지 않으 wget -i link.txt도움이 될 수 있습니다, 어디 link.txt포함ftp://remote_user:SECRET@ftp.example.com/file.ext
tehnicaorg

3

사용자 이름과 비밀번호를 파일에 저장하고 사용자 ~/.wgetrc 만 읽을 수 있도록 해당 파일의 권한을 변경할 수 있습니다.

파일 ~/.wgetrc:

user=john
password=SEcrEt

... 그리고

chmod 600 ~/.wgetrc

그러나 사용자 root는 여전히 해당 파일을 들여다 볼 수 있으며 암호를 읽을 수 있습니다.

로부터 :

본되는 암호를 방지하려면를 사용 --use-askpass하거나에 저장 .wgetrc하거나 .netrc, 및 다른 사용자로부터 해당 파일을 보호해야합니다 "chmod". 암호가 정말로 중요한 경우 해당 파일에 그대로 두지 마십시오 --- 파일을 편집하고 Wget이 다운로드를 시작한 후에 삭제하십시오.


0

당신은을 통해 인증 자격 증명을 제공 할 수 있습니다 --user=USERNAME--password=PASSWORD; 에 기초하여 man wget,이 명령은 사용하여 대체 할 수 있습니다 --http-user=USERNAME--http-password=PASSWORD위해 HTTP의 연결과 --ftp-use=USERNAME--ftp-password=PASSWORD에 대한 ftp를 연결.


-1

이 명령은 사용할 수도 --http-user--http-password대신 --user하고 --password. ftp요청의 경우 옵션은 --ftp-user--ftp-password입니다.


2
이것은 완전히 정확하지는 않습니다 : man wget--user 및 --password가 유효한 옵션이며 --http-user 또는 --ftp-password 로 대체 할 수 있음을 나타냅니다 .
Charles Green
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.