Как мне предоставить имя пользователя и пароль для wget?

Я пытался подключиться к серверу через wget:

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

Но wget отвечает: недопустимый порт

Я знаю, что сервер принимает входящий трафик через порт 80.Как я могу устранить эту проблему?

Wget интерпретирует <pass>@serveraddress как порт. Чтобы указать имя пользователя и пароль, используйте --user и --password переключатели:

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

От man wget:

--user=user

--password=password

Укажите имя пользователя пользователь и пароль пароль как для поиска файлов по FTP, так и по HTTP. Эти параметры могут быть переопределены с помощью --ftp-user и --ftp-password опции для FTP-соединений и --http-user и --http-password параметры для HTTP-соединений.

Здесь у вас есть 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 и тому подобное. (Спасибо пользователь412812)

3. Пароль не виден никому, включая вас

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

Вы также можете сохранить имя пользователя и пароль в файле ~/.wgetrcи измените права доступа к этому файлу, чтобы только ваш пользователь мог его прочитать:

Файл ~/.wgetrc:

user=johnpassword=SEcrEt

... а потом

chmod 600 ~/.wgetrc

Обратите внимание, однако, что пользователь root все еще могу заглянуть в этот файл и прочитать пароль.

Из страница человека:

Чтобы предотвратить просмотр паролей, используйте --use-askpass или хранить их в .wgetrc или .netrc, и обязательно защитите эти файлы от других пользователей с помощью "chmod". Если пароли действительно важны, также не оставляйте их лежать в этих файлах - отредактируйте файлы и удалите их после того, как Wget начнет загрузку.

Вы можете предоставить учетные данные для аутентификации с помощью --user=USERNAME и --password=PASSWORD; основанный на man wget, команда может быть переопределена с помощью --http-user=USERNAME и --http-password=PASSWORD для http соединение и --ftp-use=USERNAME и --ftp-password=PASSWORD для ftp соединение.

Это должно сработать (не пропустите кавычки)

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

Пример для моего доступа к сборкам на ftp-сервере

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

Команда могла бы использовать --http-user и --http-password вместо --user и --password. В случае ftp запросите следующие варианты --ftp-user и --ftp-password.

Я не думаю, что вы можете надежно использовать user:pass@name синтаксис там; wget имеет для них отдельные параметры командной строки, поэтому, вероятно, наивно анализирует строку после : в качестве номера порта.