从Linux HTTP服务器执行wget的配置及相关SSH问题咨询
关于wget拉取HTTPS文件的SSH相关配置问题解答
嘿,先明确个核心点:你给出的wget命令是直接通过HTTPS协议访问HTTP服务器拉取文件,本身不需要任何SSH配置。不过我猜你可能是在SSH环境下操作(比如通过SSH登录到远程机器后执行wget,或者需要通过SSH隧道中转请求),所以针对你的三个问题逐一解答:
1. 需要完成哪些初始SSH配置?
如果只是在本地直接跑wget,完全不需要SSH配置。但如果是以下两种场景,才需要做SSH相关配置:
- 场景1:通过SSH隧道中转HTTPS请求(比如目标HTTPS服务器只能通过某台SSH跳转机访问):
- 先建立端口转发隧道:执行
ssh -L 8443:<目标HTTPS服务器域名/IP>:443 <SSH服务器用户名>@<SSH服务器IP>,把本地的8443端口转发到目标HTTPS服务器的443端口,之后wget的时候就可以用https://localhost:8443/<file_path>来访问 - 如果想免密登录SSH跳转机(避免每次输密码):生成SSH密钥对
ssh-keygen -t ed25519(一路回车就行),然后把本地~/.ssh/id_ed25519.pub里的内容复制到SSH跳转机的~/.ssh/authorized_keys文件中,还要确保这个文件权限是600,目录~/.ssh权限是700
- 先建立端口转发隧道:执行
- 场景2:SSH登录到远程机器后执行wget:
只需要确保你能正常SSH登录到远程机器就行,同样可以配置免密登录来简化操作,步骤和上面一样。
2. 需在远程系统的known_hosts中更新什么内容?
还是分情况说:
- 如果是直接本地跑
wget:和SSH的known_hosts半毛钱关系都没有,这个文件只管SSH连接的服务器指纹验证 - 如果是SSH登录到远程机器执行
wget:远程机器的known_hosts只和它连接其他SSH服务器有关,和拉取HTTPS文件无关——HTTPS的证书验证是wget自己处理的,你加了--no-check-certificate已经跳过了证书校验,所以完全不需要碰known_hosts - 如果是用SSH隧道:第一次连接SSH跳转机时,SSH会自动把跳转机的公钥指纹添加到你本地的
~/.ssh/known_hosts里;如果跳转机更换了公钥,你需要删掉本地known_hosts里对应的旧条目,重新连接就会自动添加新指纹
3. 是否需要重启服务?
- 直接执行
wget命令:不需要重启任何服务,跑完就完事 - 配置了SSH免密登录或者临时SSH隧道:也不需要重启服务,配置立即生效
- 只有当你修改了SSH服务器的配置文件(比如
/etc/ssh/sshd_config),才需要重启sshd服务(比如systemctl restart sshd),但你的场景里大概率不需要改服务器配置,所以完全不用重启
内容的提问来源于stack exchange,提问作者vidya
相关产品推荐
相关产品推荐

