我在远程机器上使用 pass 作为 aws-vault 的后端,似乎我需要手动将配置文件的“密码”添加到 gpg-agent 中,然后 aws-vault 才能使用它。如果不先解密密码,就会出现错误
$ aws-vault exec --no-session --debug default -- aws s3 ls
2023/02/02 19:35:53 aws-vault v6.6.2
2023/02/02 19:35:53 Loading config file /home/<user>/.aws/config
2023/02/02 19:35:53 Parsing config file /home/<user>/.aws/config
2023/02/02 19:35:53 [keyring] Considering backends: [pass]
2023/02/02 19:35:53 profile default: using stored credentials
2023/02/02 19:35:53 profile default: skipping GetSessionToken because disabled
2023/02/02 19:35:53 Looking up keyring for 'default'
gpg: decryption failed: No secret key
aws-vault: error: exec: Failed to get credentials for default: exit status 2
但是在运行pass default
并输入pass
密码后它就可以工作了,因为(我猜测)凭证现在存储在 gpg-agent 中一段时间并且 aws-vault 可以正确看到它们。
如果需要密码,我该如何让 aws-vault 提示输入密码?而不必先运行pass <profile>
。
答案1
您可以使用 AWS_VAULT_FILE_PASSPHRASE 环境变量来传递密码。请参阅此处的文档https://github.com/99designs/aws-vault/blob/master/USAGE.md#environment-variables