使用gsutil访问GCS时遇OAuth凭证无效及SSL证书验证失败问题
解决gsutil访问GCS时的OAuth凭证无效与SSL证书验证失败问题
我之前在Google Compute Engine实例上碰到过一模一样的问题,给你分享下我当时的解决步骤,分两部分处理这两个报错:
一、修复OAuth 2.0用户账号凭证无效问题
GCE实例默认是通过实例绑定的服务账号来访问Google Cloud Storage的,如果你之前手动运行过gsutil config配置了个人用户的OAuth凭证,反而会和默认的服务账号凭证冲突,导致这个报错。解决方法很简单:
- 首先删除旧的用户凭证配置文件:
rm ~/.boto - 这时候gsutil会自动尝试使用GCE实例的默认服务账号凭证。如果还是有问题,你可以重新初始化gcloud工具,让它自动关联实例的服务账号:
跟着向导选择默认的项目和服务账号即可。gcloud init
二、修复SSL证书验证失败问题
这个报错通常是系统CA证书过期、缺失,或者系统时间不正确导致的,按以下步骤排查:
- 先检查系统时间是否正确:
看看输出的时间是否和当前UTC时间一致,如果偏差很大,先同步时间:date- Debian/Ubuntu系统:
sudo timedatectl set-ntp on - CentOS/RHEL系统:
sudo ntpdate time.google.com
- Debian/Ubuntu系统:
- 然后更新系统的CA证书:
- Debian/Ubuntu系统:
sudo apt-get update && sudo apt-get install --reinstall ca-certificates - CentOS/RHEL系统:
sudo yum update ca-certificates
- Debian/Ubuntu系统:
完成以上步骤后,再重新运行gsutil ls gs://my-storage-bucket,应该就能正常访问了。如果还是有问题,你可以检查下实例绑定的服务账号是否有storage.objects.list的权限,确保权限配置正确。
内容的提问来源于stack exchange,提问作者Bhasky93
相关产品推荐
相关产品推荐

