我尝试通过 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
密码也将在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.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=PASSWORD
http连接和--ftp-use=USERNAME
和--ftp-password=PASSWORD
FTP联系。