如何从WSL(Windows子系统)访问AWS配置文件?

15

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


我期望它们在WSL中位于/home/yourname/.aws/下。 - jarmod
3
只需运行 aws configure 并输入您的凭据即可。现在它们将正确地存储在WSL下。 - John Hanley
@JohnHanley 是的,他们可以,但以防万一,我想在 WSL 中编辑这些文件。我不能导航到它们吗? - thedreamsaver
是的,您无法编辑AWS Windows凭据文件,但是从WSL中,AWS CLI不会看到或关心这些更改。我没有在我的笔记本电脑上运行WSL,但路径应该类似于:/<windows_mount_point>/Users/<user_name>/.aws/credentials。 - John Hanley
是的,我也期望过@JohnHanley,但当我尝试访问时,出现了“thedreamsaver@MSI:/mnt/c/Users/thedreamsaver$ cd .aws -bash: cd: .aws: 没有那个文件或目录”的错误。 - thedreamsaver
显示剩余3条评论
2个回答

44

您所需要做的就是在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

3
太棒了。这样你就可以在两个系统中使用相同的个人资料和凭据。 - EduLopez
那个解决方案对我有用,但是只有在使用管理员权限运行 Windows PowerShell 并重新连接到 WSL bash 之后运行 "wsl --shutdown" 才有效。 - Gabriel Amazonas Mesquita
路径对于每个人都不同。因此,对于那些验证过的答案无法解决问题的人,请尝试手动导航到路径,然后运行命令。 - Shameel Uddin
起初它对我没用,但当我从Windows格式(CR LF)切换到Unix格式(LF)时,它就像魔法般地工作了。对于那些不知道的人 - 你可以在Notepad++中轻松更改格式。 - Fenio

1

在我的看法中,按照其他答案中所述设置AWS_SHARED_CREDENTIALS_FILEAWS_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 的WSL符号链接指向/mnt/c/Users/user/.aws,这与使用环境变量有着相同的效果。既然这种方法也是合理的,我觉得没有必要花费精力切换到环境变量的方法。
注:我不确定 awscliv2.zip 安装程序是否进行了这些更改。我最初尝试使用sudo apt inswall awscli 在WSL中安装AWS CLI,然后才意识到它安装了v1.x而不是v2.x,所以我卸载了它并使用了这里描述的方法。或许有人可以验证这种行为,并在评论中确认是什么添加了该符号链接。


我刚刚遇到了同样的符号链接,但无法弄清它是如何创建的。 - SerG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接