Question Comment puis-je fournir un nom d'utilisateur et un mot de passe pour 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?


125
2018-03-05 02:54


origine


Je ne pense pas que vous puissiez utiliser de manière fiable la syntaxe user: pass @ name; wget a des options de ligne de commande séparées pour ceux à la place, donc est probablement l'analyse naïvement de la chaîne après le : comme numéro de port. - geekosaur


Réponses:


Wget interprète <pass>@serveraddress un sport. Pour spécifier un nom d'utilisateur et un mot de passe, utilisez le --user et --password commutateurs:

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 FTP et HTTP. Ces paramètres peuvent être remplacés en utilisant le    --ftp-user et --ftp-password options pour les connexions FTP et le --http-user et --http-password options pour les connexions HTTP.


149
2018-03-05 08:51



Je préfère le --ask-password option décrite par la réponse de Nabil Kadimi. Vous devez saisir le mot de passe de manière invisible sur une autre ligne et éviter de le stocker dans l’historique de votre shell. - Kevin
@Kevin Vous pouvez éviter de le stocker dans l’historique du shell en démarrant la ligne avec au moins un espace (comme indiqué par Nabil). Si le mot de passe / la ressource est sensible, vous devriez vous préoccuper davantage de la connexion HTTP / FTP / quelque soit le cryptage non crypté que de le stocker sur votre disque. - Lekensteyn
J'accepte que le problème de mot de passe non crypté soit plus important dans certains cas que l'historique du shell, mais la réponse est également utile pour les protocoles sécurisés. En outre, vous devez parfois vous soucier davantage des espions qui ont accès à votre ordinateur que les espions en ligne (qui ne sont pas intéressés par le contenu auquel vous accédez ou pour lequel vous ne vous souciez pas). La réponse --ask-password ci-dessous est clairement meilleure pour une utilisation interactive, tandis que la réponse --password est plus facile pour l’automatisation. Le commentaire de Ixgr à propos de .wgetrc et de chmod est également intéressant dans certains cas. - youen


Vous avez 3 options et ici, il n'y a pas d'ordre spécifique autre que les tripes:

1 / Le mot de passe est visible par tous (en utilisant la commande history)

me@machine:~$ wget --user=remote_user --password=SECRET ftp://ftp.example.com/file.ext

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

2 / Le mot de passe est visible par quiconque regarde derrière vos épaules

me@machine:~$  wget --user=remote_user --password=SECRET ftp://ftp.example.com/file.ext

Notez l'espace blanc avant la commande, cela empêche de l'enregistrer dans votre historique

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

3 / Le mot de passe n'est visible pour personne, y compris vous

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

81
2018-01-04 11:17



Bien qu'il ne soit pas visible dans l'historique, il est visible par tous ceux qui exécutent une commande ps, top, htop ou similaire pendant l'exécution du processus.
@AbdennourTOUMI Pourquoi désactiver les vérifications de certificats, surtout si vous envoyez un mot de passe avec la demande? Ce n'est certainement pas conseillé en général. En ce qui concerne le "masquage" du mot de passe sur les journaux ou / proc, la page de manuel wget offre une option supplémentaire: "Pour empêcher que les mots de passe soient vus, stockez-les dans .wgetrc ou .netrc et protégez ces fichiers de d'autres utilisateurs avec "chmod". " - lxgr
Si --ask-password n'est pas disponible ou vous ne voulez pas taper le mot de passe à chaque fois, wget -i link.txt peut aider, où link.txt contient ftp://remote_user:SECRET@ftp.example.com/file.ext - tehnicaorg


La commande aurait pu utiliser --http-user et --http-password au lieu de --user et --password. En cas de ftp demander les options sont --ftp-user et --ftp-password.


0
2018-06-15 09:05



Ce n'est pas tout à fait correct: man wget indique que --user et --password sont des options valides, qui peut être remplacé par --http-user ou --ftp-password - Charles Green