如何解决Ubuntu 22.04 WSL2中AWS CLI InvalidToken报错问题?
解决WSL2中AWS CLI InvalidToken错误的方法
检查配置文件格式与内容
WSL2中AWS的配置文件位于~/.aws/credentials和~/.aws/config,先确认文件无格式错误:- 执行命令查看文件内容:
cat ~/.aws/credentials cat ~/.aws/config - 确保
credentials格式严格为:[default] aws_access_key_id = 你的访问密钥ID aws_secret_access_key = 你的秘密访问密钥 config文件的区域配置正确:[default] region = eu-central-1 output = json
对比Windows系统
C:\Users\<你的用户名>\.aws下的配置文件,确保内容完全一致,避免复制时带入隐藏字符或多余空格。- 执行命令查看文件内容:
清除冲突的环境变量
WSL2可能继承Windows的AWS临时凭证环境变量,导致优先级覆盖长期密钥:- 查看所有AWS相关环境变量:
env | grep AWS - 如果存在
AWS_SESSION_TOKEN等无关变量,执行命令清除:unset AWS_SESSION_TOKEN - 可将上述
unset命令添加到~/.bashrc或~/.zshrc中,避免每次启动WSL重复操作。
- 查看所有AWS相关环境变量:
验证并升级AWS CLI版本
旧版本CLI可能存在WSL兼容性问题:- 查看当前版本:
aws --version - 若为v1版本,升级到v2:
sudo apt remove awscli curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install - 重新执行
aws configure输入凭证与区域。
- 查看当前版本:
直接复制Windows配置文件并修正权限
直接复用Windows的有效配置:- 在WSL2中复制Windows的
.aws文件夹:cp -r /mnt/c/Users/<你的Windows用户名>/.aws ~/ - 设置文件权限(AWS要求配置文件权限不能开放):
chmod 600 ~/.aws/credentials chmod 600 ~/.aws/config
- 在WSL2中复制Windows的
测试与排查
配置完成后执行aws s3 ls测试,若仍报错,添加--debug参数查看详细日志定位问题:aws s3 ls --debug
内容的提问来源于stack exchange,提问作者Đỗ Như Vỹ
相关产品推荐
相关产品推荐

