Amazon S3 CLI下载报错RequestTimeTooSkewed问题求助
WSL2环境AWS CLI S3下载RequestTimeTooSkewed报错解决方案
问题根因
同步Windows宿主机时间后问题仍存在,是因为WSL2的系统时钟独立于宿主机运行,在宿主机休眠、WSL2后台挂起后极易出现时间偏移,即使宿主机时间恢复正常,WSL2内部的系统时间不会自动同步更新,因此AWS服务端校验请求时间时会触发超过900秒偏差的拦截规则。
解决方案
临时修复(单次生效)
直接在WSL2终端执行以下命令同步硬件时钟(即宿主机Windows的系统时间)到WSL2系统:sudo hwclock -s
执行完成后运行date命令确认WSL2内部时间和当前真实时间一致,再重新执行S3下载命令即可:aws s3 cp s3://parent_filepath/foo/bar/folder_of_interest/ ./本地保存路径 --recursive
永久修复(避免后续重复出现)
可根据你的WSL2版本选择对应方案:
- 若WSL2版本≥0.67.6,可开启内置自动时间同步功能:
在WSL2内编辑/etc/wsl.conf文件,添加如下配置:[boot]
systemd=true
保存后关闭所有WSL2窗口,在Windows cmd执行wsl --shutdown重启WSL2即可,后续systemd会自动维护系统时间同步。 - 若WSL2版本较低不支持上述配置,可添加定时同步任务:
执行sudo crontab -e打开定时任务编辑界面,添加如下一行配置,每30分钟自动同步一次宿主机时间:*/30 * * * * /usr/sbin/hwclock -s > /dev/null 2>&1
异常排查
如果执行时间同步操作后仍报错,可检查本地是否开启了VPN、全局代理,这类工具可能会修改请求链路的时间计算逻辑,关闭后再重试即可。
内容的提问来源于stack exchange,提问作者user16341274
相关产品推荐
相关产品推荐

