241 votes

Comment fournir un nom d'utilisateur et un mot de passe à wget ?

J'ai essayé de me connecter à un serveur via wget :

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

Mais wget répond : port invalide

Je sais que le serveur accepte le trafic entrant sur le port 80. Comment puis-je résoudre ce problème ?

296voto

Lekensteyn Points 162346

Wget interprète <pass>@serveraddress comme port. Pour spécifier un nom d'utilisateur et un mot de passe, utilisez l'option --user y --password interrupteurs :

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

De man wget :

--user=user

--password=password

Spécifiez le nom d'utilisateur utilisateur et mot de passe mot de passe pour la récupération de fichiers par FTP et HTTP. Ces paramètres peuvent être remplacés par l'option --ftp-user y --ftp-password pour les connexions FTP et les options --http-user y --http-password options pour les connexions HTTP.

155voto

Nabil Kadimi Points 1902

Vous avez 3 options ici. Elles ne sont pas classées dans un ordre précis, sauf pour ce qui est de l'intuition :

1. Le mot de passe est visible par tout le monde (en utilisant la commande history )

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

Le mot de passe sera également visible dans ps , top , htop et similaires.

2. Le mot de passe est visible pour toute personne regardant derrière vos épaules

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

Remarquez l'espace blanc avant la commande, il empêche de l'enregistrer dans votre historique.

Le mot de passe sera également visible dans ps , top , htop et similaires. (Merci utilisateur412812 )

3. Le mot de passe n'est visible par personne, y compris vous

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

10voto

PerlDuck Points 12079

Vous pouvez également stocker le nom d'utilisateur et le mot de passe dans le fichier ~/.wgetrc et changez les permissions de ce fichier pour que seul votre utilisateur puisse le lire :

Fichier ~/.wgetrc :

user=john
password=SEcrEt

... et puis

chmod 600 ~/.wgetrc

Notez, cependant, que l'utilisateur root peut toujours regarder dans ce fichier et lire le mot de passe.

De la page d'accueil :

Pour empêcher que les mots de passe ne soient vus, utilisez la fonction --use-askpass ou les stocker dans .wgetrc o .netrc et assurez-vous de protéger ces des autres utilisateurs avec "chmod" . Si les mots de passe sont vraiment importants, ne les laissez pas non plus dans ces fichiers. les fichiers et supprimez-les après que Wget ait commencé le téléchargement.

1voto

Esmaeil MIRZAEE Points 141

Vous pouvez fournir des informations d'authentification via --user=USERNAME y --password=PASSWORD ; sur la base de la man wget la commande peut être remplacée par l'option --http-user=USERNAME y --http-password=PASSWORD pour http et la --ftp-use=USERNAME y --ftp-password=PASSWORD pour ftp connexion.

1voto

Th. Thielemann Points 121

Cela devrait fonctionner (ne manquez pas les guillemets).

wget 'http://<user>:<pass>@<serveradress>/<path>/<filename>'

Exemple pour mon accès aux builds sur le serveur ftp

wget 'ftp://DOMAIN\thomas:dasbleibtgeheim@build.server12321.dd/download/bins/lastnightly_v1.2.3.bin'

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X