Vraag Hoe geef ik een gebruikersnaam en wachtwoord op voor wget?


Ik heb geprobeerd om via wget verbinding te maken met een server:

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

Maar wget antwoordt: ongeldige poort

Ik weet dat de server binnenkomend verkeer op poort 80 accepteert. Hoe kan ik dit probleem oplossen?


125
2018-03-05 02:54


oorsprong


Ik denk niet dat je de gebruiker op betrouwbare wijze kunt gebruiken: pas @ syntaxis daar toe; wget heeft daarvoor in plaats daarvan aparte commandoregel-opties, dus is waarschijnlijk naief de string na de parsing : als een poortnummer. - geekosaur


antwoorden:


Wget interpreteert <pass>@serveraddress een sport. Gebruik de. Om een ​​gebruikersnaam en wachtwoord op te geven --user en --password switches:

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

Van man wget:

--user=user

--password=password

Geef de gebruikersnaam op gebruiker en wachtwoord wachtwoord voor zowel het ophalen van FTP- als HTTP-bestanden. Deze parameters kunnen worden overschreven met behulp van de    --ftp-user en --ftp-password opties voor FTP-verbindingen en de --http-user en --http-password opties voor HTTP-verbindingen.


149
2018-03-05 08:51



Ik geef de voorkeur aan de --ask-password optie beschreven door Nabil Kadimi's antwoord. U moet het wachtwoord onzichtbaar op een andere regel invoeren en voorkomt dat u het in uw shell-geschiedenis opslaat. - Kevin
@Kevin Je kunt het voorkomen dat je het in de shell-geschiedenis opslaat door de regel met minimaal één spatie te starten (zoals weergegeven door Nabil). Als het wachtwoord / de bron gevoelig is, moet u zich meer zorgen maken over de niet-versleutelde HTTP / FTP / willekeurige verbinding dan deze op uw schijf opslaan. - Lekensteyn
Ik ga ermee akkoord dat het niet-versleutelde wachtwoordprobleem in sommige gevallen belangrijker is dan de shell-geschiedenis, maar het antwoord is ook handig voor beveiligde protocollen. Ook moet u zich soms meer zorgen maken over spionnen die toegang hebben tot uw computer dan online spionnen (die niet geïnteresseerd zijn in de inhoud die u bezoekt of waarvoor het u niet uitmaakt). Het antwoord -ask-wachtwoord hieronder is duidelijk beter voor interactief gebruik, terwijl het antwoord op het wachtwoord eenvoudiger is voor automatisering. De opmerking van Ixgr over .wgetrc en chmod is ook in sommige gevallen interessant. - youen


Je hebt 3 opties en hier zijn er geen andere specifieke volgorde dan het lefgevoel:

1 / Wachtwoord is voor iedereen zichtbaar (via het commando history)

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

Het wachtwoord is ook zichtbaar in ps, top, htop en vergelijkbaar.

2 / Wachtwoord is zichtbaar voor iedereen die achter je schouders kijkt

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

Let op de witte ruimte vóór het commando, het voorkomt dat je het opslaat in je geschiedenis

Het wachtwoord is ook zichtbaar in ps, top, htop en vergelijkbaar.

3 / Wachtwoord is niet zichtbaar voor iedereen inclusief jou

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



Hoewel het niet zichtbaar is in de geschiedenis, is het zichtbaar voor iedereen die een ps-, top-, htop- of soortgelijke opdracht uitvoert terwijl het proces wordt uitgevoerd.
@AbdennourTOUMI Waarom zou u certificaatcontroles uitschakelen, vooral als u een wachtwoord verzendt met het verzoek? Dat is absoluut niet raadzaam in het algemeen. Wat betreft het "verbergen" van het wachtwoord op logs of / proc, geeft de wget-manpage een extra optie: "Om te voorkomen dat de wachtwoorden worden gezien, sla ze op in .wgetrc of .netrc en zorg ervoor dat die bestanden worden beschermd tegen andere gebruikers met "chmod". " - lxgr
Als --ask-password is niet beschikbaar of je wilt niet elke keer het wachtwoord typen, wget -i link.txt kan helpen, waar link.txt bevat ftp://remote_user:SECRET@ftp.example.com/file.ext - tehnicaorg


Het commando zou kunnen hebben gebruikt --http-user en --http-password in plaats van --user en --password. In het geval van ftp verzoek de opties zijn --ftp-user en --ftp-password.


0
2018-06-15 09:05



Dit is niet helemaal correct: man wget geeft aan dat --user en --password geldige opties zijn, welke kan worden opgeheven door --http-user of --ftp-wachtwoord - Charles Green