web-dev-qa-db-ja.com

wgetにユーザー名とパスワードを提供するにはどうすればよいですか?

私はwget経由でサーバーに接続しようとしました:

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

しかし、wgetは応答します:無効なポート

サーバーがポート80で着信トラフィックを受け入れることを知っています。この問題を修正するにはどうすればよいですか?

152
pschmidt

Wgetは<pass>@serveraddressをポートとして解釈します。ユーザー名とパスワードを指定するには、--userおよび--passwordスイッチを使用します。

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

man wget から:

--user=user

--password=password

FTPおよびHTTPファイル取得の両方に、ユーザー名userおよびパスワードpasswordを指定します。これらのパラメーターは、FTP接続の場合は--ftp-userおよび--ftp-passwordオプション、HTTP接続の場合は--http-userおよび--http-passwordオプションを使用してオーバーライドできます。

191
Lekensteyn

次の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)]
101
Nabil Kadimi

ユーザー名とパスワードをファイル~/.wgetrcに保存し、そのファイルの権限を変更して、ユーザーのみが読み取れるようにすることもできます。

ファイル~/.wgetrc

user=john
password=SEcrEt

... その後

chmod 600 ~/.wgetrc

ただし、ユーザーrootは引き続きそのファイルを覗き込んでパスワードを読み取ることができることに注意してください。

manpage から:

パスワードが表示されないようにするには、--use-askpassを使用するか、.wgetrcまたは.netrcに保存し、"chmod"で他のユーザーからそれらのファイルを保護してください。パスワードが本当に重要な場合は、それらのファイルにパスワードを置いたままにしないでください。Wgetがダウンロードを開始した後、ファイルを編集して削除してください。

2
PerlDuck

--user=USERNAMEおよび--password=PASSWORD;を介して認証資格情報を提供できます。 man wgetに基づいて、http接続の--http-user=USERNAMEおよび--http-password=PASSWORDと、--ftp-use=USERNAMEおよび--ftp-password=PASSWORDを使用してコマンドをオーバーライドできます。 ftp接続の場合。

0
Esmaeil MIRZAEE