如何从 WSL(适用于 Linux 的 Windows 子系统)访问 aws 配置文件?

问题描述 投票:0回答:2

我已经安装了 awscli 并将 aws 密钥添加到配置和凭证文件中。 现在我可以通过 Windows 中的文件资源管理器访问它们,但无法通过 WSL bash 访问它们。当我尝试 cd 到 rootfs 中的 .aws 文件夹时,它说权限被拒绝。我如何从 bash 访问它们?

windows bash amazon-web-services aws-cli windows-subsystem-for-linux
2个回答
46
投票

您所要做的就是从 WSL shell 设置几个环境变量。我假设您正在使用 bash 和 Ubuntu。

export AWS_SHARED_CREDENTIALS_FILE=/mnt/c/Users/<your user name>/.aws/credentials
export AWS_CONFIG_FILE=/mnt/c/Users/<your user name>/.aws/config

如果你想让环境变量保持粘性,请将这两行添加到 ~/.bashrc 或 /etc/bash.bashrc

编辑后请记住

source /etc/bash.bashrc
source ~/.bashrc

请参阅此处的文档,您可以使用的环境变量的完整列表cli-environment


1
投票

在我看来,设置

AWS_SHARED_CREDENTIALS_FILE
AWS_CONFIG_FILE
,如其他答案中所述,是最优雅的方法。不过,我现在刚刚遵循了AWS CLI Linux 安装说明,其中指出使用以下命令来执行下载的脚本:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

该脚本一定检测到我正在 WSL 中运行,因为显然它创建了

~/.aws
/mnt/c/Users/user/.aws
的 WSL 符号链接,这与使用环境变量具有相同的结果。而且这种做法也合理,所以我觉得没必要费力去改用环境变量的做法。

注意:我不完全确定

awscliv2.zip
安装程序进行了这些更改。我首先尝试使用
sudo apt install awscli
在 WSL 中安装 AWS CLI,然后意识到它安装了 v1.x 而不是 v2.x,因此我将其卸载并使用此处描述的方法。也许有人可以验证行为并在评论中确认什么命令添加了符号链接。

© www.soinside.com 2019 - 2024. All rights reserved.