在我的 .bashrc 文件末尾有以下内容:
docker login -u AWS -p $(aws --region us-east-2 ecr get-login-password) 636602586062.dkr.ecr.us-east-2.amazonaws.com
但是,每当我打开一个新的 shell 时,我都会收到此错误:
INFO[0000] Error logging in to endpoint, trying next endpoint error="login attempt to https://636602586062.dkr.ecr.us-east-2.amazonaws.com/v2/ failed with status: 403 Forbidden"
login attempt to https://636602586062.dkr.ecr.us-east-2.amazonaws.com/v2/ failed with status: 403 Forbidden
如果我在提示后手动运行该命令,该命令可以正常工作,但它在 .bashrc 文件中不起作用。
凭据是通过执行设置的aws configure
。CLI工具aws
是由我安装的,执行以下操作:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
关于为什么它不起作用以及我能做些什么来修复它有什么想法吗?
如果这很重要的话,我正在运行 Ubuntu 22.04。
谢谢!
文档不推荐您使用的命令,
-p
提供密码的选项不安全。参考这里
命令应该是:
或者
上述命令不使用交互式 shell。
我承认我不知道为什么你的命令在文件中不起作用
.bashrc
,它在任何情况下都与aws
不会在subshell
a 中产生输出的命令有关.bashrc
(因为你用$(...)
)打开了一个子shell。希望这个答案对您有帮助。