如何向 wget 提供用户名和密码?

如何向 wget 提供用户名和密码?

我尝试通过 wget 连接到服务器:

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

但 wget 响应:无效端口

我知道服务器在端口 80 接受传入流量。我该如何解决这个问题?

答案1

Wget 解释<pass>@serveraddress为端口。要指定用户名和密码,请使用--user--password开关:

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

man wget

--user=user

--password=password

指定用户名用户和密码密码--ftp-user用于 FTP 和 HTTP 文件检索。可以使用和--ftp-password选项(对于 FTP 连接)以及--http-user--http-password选项(对于 HTTP 连接)覆盖这些参数 。

答案2

这里有 3 个选项。除了直觉之外,它们没有特定的顺序:

1. 密码对任何人都可见(使用命令history

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

密码也将在pstophtop类似内容中显示。

2. 任何偷看你密码的人都能看到你的密码

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

注意命令前的空格,它会阻止将其保存到历史记录中。

密码也将在 、 和类似内容中显示pstophtop感谢用户412812

3. 包括您在内的任何人都看不到密码

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

然后系统会要求你输入密码

Password for user `remote_user': 

答案3

您还可以将用户名和密码存储在文件中~/.wgetrc ,并更改该文件的权限,以便只有您的用户可以读取它:

文件~/.wgetrc

user=john
password=SEcrEt

... 进而

chmod 600 ~/.wgetrc

但请注意,用户root仍然可以查看该文件并读取密码。

来自手册页

为了防止密码被别人看到,请使用--use-askpass或 将它们存储在 .wgetrc或中.netrc,并确保使用 保护这些文件不被其他用户看到"chmod"。如果密码真的很重要,也不要将它们留在这些文件中 --- 在 Wget 开始下载后编辑这些文件并将其删除。

答案4

--user=USERNAME您可以通过和提供身份验证凭据--password=PASSWORD;基于,可以使用和man wget覆盖该命令--http-user=USERNAME--http-password=PASSWORDhttp连接和--ftp-use=USERNAME--ftp-password=PASSWORDFTP联系。

相关内容