Frage Wie stelle ich wget einen Benutzernamen und ein Passwort zur Verfügung?


Ich habe versucht, über wget eine Verbindung zu einem Server herzustellen:

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

Aber wget antwortet: ungültiger Port

Ich weiß, dass der Server eingehenden Datenverkehr an Port 80 akzeptiert. Wie kann ich dieses Problem beheben?


125
2018-03-05 02:54


Ursprung


Ich glaube nicht, dass Sie den Benutzer zuverlässig verwenden können: übergeben Sie @ name Syntax dort; wget Englisch: www.openbsd.dk/faq/pf//queueing.html hat stattdessen separate Befehlszeilenoptionen für diese, also wird er wahrscheinlich die Zeichenfolge naiv analysieren : als eine Portnummer. - geekosaur


Antworten:


Wget interpretiert <pass>@serveraddress eine Sportart. Um einen Benutzernamen und ein Passwort anzugeben, verwenden Sie die --user und --password Schalter:

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

Von man wget:

--user=user

--password=password

Geben Sie den Benutzernamen an Benutzer und Passwort Passwort für den Abruf von FTP- und HTTP-Dateien. Diese Parameter können mit dem Parameter überschrieben werden    --ftp-user und --ftp-password Optionen für FTP-Verbindungen und die --http-user und --http-password Optionen für HTTP-Verbindungen.


149
2018-03-05 08:51



Ich bevorzuge die --ask-password Option beschrieben von Nabil Kadimi's Antwort. Sie müssen das Passwort unsichtbar in einer anderen Zeile eingeben und es in Ihrem Shell-Verlauf speichern. - Kevin
@Kevin Sie können vermeiden, es in der Shell-Historie zu speichern, indem Sie die Zeile mit mindestens einem Leerzeichen beginnen (wie in Nabil). Wenn das Passwort / die Ressource empfindlich ist, sollten Sie sich mehr Gedanken über die unverschlüsselte Verbindung HTTP / FTP / was auch immer machen, als sie auf Ihrer Festplatte zu speichern. - Lekensteyn
Ich stimme zu, dass das Problem des unverschlüsselten Passworts in einigen Fällen wichtiger ist als der Shell-Verlauf, aber die Antwort ist auch für sichere Protokolle nützlich. Außerdem müssen Sie sich manchmal mehr Gedanken über Spione machen, die Zugriff auf Ihren Computer haben als über Online-Spione (die nicht an dem Inhalt interessiert sind, auf den Sie zugreifen oder für den Sie sich nicht interessieren). Die Antwort "--ask-password" ist für die interaktive Nutzung deutlich besser, während die Antwort "password" hier einfacher für die Automatisierung ist. Der Kommentar von Ixgr über .wgetrc und chmod ist in einigen Fällen auch interessant. - youen


Sie haben 3 Optionen und hier gibt es keine bestimmte Reihenfolge außer Eingeweide fühlen:

1 / Passwort ist für jeden sichtbar (mit dem Befehl history)

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

Das Passwort wird auch in ps, top, htop und ähnlichem sichtbar sein.

2 / Passwort ist für jeden sichtbar, der hinter die Schultern schaut

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

Beachten Sie das weiße Leerzeichen vor dem Befehl, es verhindert das Speichern in Ihrem Verlauf

Das Passwort wird auch in ps, top, htop und ähnlichem sichtbar sein.

3 / Passwort ist für niemanden einschließlich Ihnen sichtbar

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



Während es in der Historie nicht sichtbar ist, ist es für alle sichtbar, die einen Befehl ps, top, htop oder ähnliches ausführen, während der Prozess läuft.
@AbdennourTOUMI Warum würden Sie Zertifikatsprüfungen deaktivieren, besonders wenn Sie ein Passwort mit der Anfrage senden? Das ist definitiv nicht ratsam im Allgemeinen. Was das "Ausblenden" des Passworts für Logs oder / proc angeht, gibt es auf der wget-Manpage eine zusätzliche Option: "Um zu verhindern, dass Passwörter angezeigt werden, speichern Sie sie in .wgetrc oder .netrc und stellen Sie sicher, dass diese Dateien geschützt sind andere Benutzer mit "chmod". " - lxgr
Ob --ask-password ist nicht verfügbar oder Sie möchten nicht jedes Mal das Passwort eingeben, wget -i link.txt kann helfen, wo link.txt enthält ftp://remote_user:SECRET@ftp.example.com/file.ext - tehnicaorg


Der Befehl hätte verwendet werden können --http-user und --http-password Anstatt von --user und --password. Im Falle von ftp Anfrage die Optionen sind --ftp-user und --ftp-password.


0
2018-06-15 09:05



Das ist nicht ganz richtig: man wget zeigt an, dass --user und --password gültige Optionen sind, die kann außer Kraft gesetzt werden von --http-user oder --ftp-password - Charles Green