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


157

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

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

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

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


そこでuser:pass @ name構文を確実に使用できるとは思いません。wget代わりにそれらのための個別のコマンドラインオプションがあるので、おそらく:ポート番号としての後に文字列を単純に解析しています。
ギコサウルス

回答:


198

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

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

からman wget

--user=user

--password=password

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


48
--ask-passwordNabil Kadimiの回答で説明されているオプションを好みます。パスワードを別の行に目に見えないように入力し、シェル履歴に保存することを避けます。
ケビン14

8
@Kevin少なくとも1つのスペースで行を開始することにより、シェル履歴に保存することを回避できます(Nabilが示すように)。パスワード/リソースが機密である場合、暗号化されていないHTTP / FTP / whatever接続をディスクに保存するよりも心配する必要があります。
Lekensteyn

場合によっては、シェルの履歴よりも暗号化されていないパスワードの問題が重要であることに同意しますが、その答えは安全なプロトコルにも役立ちます。また、オンラインスパイ(アクセスしているコンテンツや関心のないコンテンツには興味がない)よりも、コンピューターにアクセスするスパイについて心配する必要がある場合があります。以下の--ask-passwordの回答は、インタラクティブな使用には明らかに優れていますが、ここでの--passwordの回答は自動化に適しています。Ixgrによる.wgetrcとchmodに関するコメントも興味深い場合があります。
youenが

私はマニュアルを理解しているので、パスはポートとして解釈されません。「あなたはまた、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のマンページには追加のオプションがあります。 「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-userandの--http-password代わりに--userand を使用できます--password。以下の場合、ftp要求のオプションがある--ftp-user--ftp-password


2
これは完全に正しくありません: man wget--userと有効なオプション、--passwordであることを示して上書きすることができます --http-ユーザーまたは--ftpパスワードで
チャールズ・グリーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.