【发布时间】:2020-04-01 02:22:23
【问题描述】:
我正在尝试在我的 Linux Box 中借助 AWS CLI 创建一个 SFTP 用户。
下面是我在我的 bash 脚本中传递的 AWS CLI 命令(我的 ssh 公钥在一个文件中,借助变量我将它传递到 AWS CLI 选项部分)
customer_name_pub_value=$(cat /home/developer/naman/dir/$customer_name.pub)
aws transfer create-user --user-name $customer_name --home-directory script-test/power-archive-ireland/$customer_name/ --server-id s-aaabbbccc --ssh-public-key-body $customer_name_pub_value --tags 'Key=Product,Value="demo",Key=Environment,Value=dev,Key=Contact,Value="dev.user@domain.com",Key=Service,Value="sftp"' --role customer-sftp-role
以下是我在执行上述命令时遇到的错误:
[developer@dev-lin demo]$ aws transfer create-user --user-name $customer_name --home-directory script-test/power-archive-ireland/$customer_name/ --server-id s-aaabbbccc --ssh-public-key-body $customer_name_pub_value --tags 'Key=Product,Value="demo",Key=Environment,Value=dev,Key=Contact,Value="dev.user@domain.com",Key=Service,Value="sftp"' --role customer-sftp-role
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
Unknown options: developer@dev-lin.domain.com, XXXXXXXXXXAB3NzaC1yc2EAAAADAQABAAABAQCm2hI3Y33K1GVbdQV0lfkm/klZRJS7Kcz8+53e/BoIbVMFH0jqm1aejELDFgPnN7HvIZ/csYGzF/ssTx5lXVaHQh/qkYwfqQBg8WvXVB0Jmogj1hr6z5M8Qy/3oCx0fSmh6e/Ekfk8vHhiHQlGZV3o8a2AW5SkP8IH/OgT6Bq+SMuB+xtSciVBZqSLI0OgYtOZ0MyxBzfLau1Tyegu5lVFevZDVjecnIaS4l+v2VIQ/OgaZ40oAI3NuRZ2EdnLqEqFyLjasx4kcuwNzD5oaXAU6T9UsqKN2rVLMKrXXXXXXXXXXX
我在传递选项值时是否遗漏了一些 bash 语法!
2020 年 3 月 30 日更新 根据以下 cmets 中的建议,我在命令中添加了 AWS ARN 角色,现在面临与以前不同的问题
代码:
customer_name='demo'
customer_name_pub_value=$(cat /home/developer/naman/dir/$customer_name.pub)
aws transfer create-user --user-name $customer_name --home-directory script-test/power-archive-ireland/$customer_name/ --server-id s-aaabbbccc --ssh-public-key-body "$customer_name_pub_value" --tags 'Key=Product,Value="demo",Key=Environment,Value=dev,Key=Contact,Value="dev.user@domain.com",Key=Service,Value="sftp"' --role "arn:aws:iam::8XXXXXXXXX2:role/customer-sftp-role"
错误
An error occurred (ValidationException) when calling the CreateUser operation: 1 validation error detected: Value 'script-test/power-archive-ireland/demo/' at 'homeDirectory' failed to satisfy constraint: Member must satisfy regular expression pattern: ^$|/.*
【问题讨论】:
-
也许删除主目录末尾的斜杠?另外,我相信您想将 ARN 传递给 --role?
-
另一种可能性是 --tags 作为列表的格式(也许把它们从引号中去掉,搞砸了)
-
调试这类事情的一个简单方法是将“echo”放在前面,这样它就只是打印命令,而不是运行它。然后,您可以验证是否正确引用了所有数据。由于错误消息引用的数据不在您的命令中,因此它可能来自 $variables。
-
@user1394 我已经尝试从主目录中删除尾随 / 但仍然是同样的问题。 `调用CreateUser操作时发生错误(ValidationException):检测到1个验证错误:'homeDirectory'中的值'demo.ui/demo-test/ui-dl-power-archive-ireland/customer'未能满足约束:成员必须满足正则表达式模式:^$|/.* `感谢更正角色 ARN 建议,我已更新 ARN 角色
-
@JohnRotenstein 感谢您的建议,我已经尝试了尽可能多的破坏,但无法找到错误的原因,还更新了错误堆栈,看看你是否能找到一些东西。跨度>
标签: linux amazon-web-services shell aws-cli aws-sftp