gpt4 book ai didi

amazon-web-services - 我们可以通过cloudformation模板创建用户吗?

转载 作者:行者123 更新时间:2023-12-03 07:44:51 25 4
gpt4 key购买 nike

我正在尝试在我的 EC2 实例上创建本地用户并传递公钥以启用 SSH。当我通过 cloudformation 模板或从控制台(在用户日期中传递脚本)执行此操作时,它不起作用。

但是当我在启动实例后在 putty 上执行此操作时,它会起作用。

CLoudFormation 模板(不创建用户)--

"UserData" : {
"Fn::Base64" : {
"Fn::Join" : [
"", [
"#!/bin/bash\n",
"adduser webadm\n",
"su - webadm\n",
"mkdir .ssh\n",
"chmod 700 .ssh\n",
"cd .ssh\n",
"touch authorized_keys\n",
"chmod 600 authorized_keys\n",
"curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > authorized_keys\n"
]
]
}
}
}

通过控制台执行时(不创建用户)--

#!/bin/bash
adduser webadm
su - webadm
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > authorized_keys

同样,该脚本在实例启动后从 putty 执行时有效。不确定是否可以在使用 cloudformation 或控制台启动实例时完成。

最佳答案

如果有人正在寻找解决方案,就在这里。

"UserData" : {
"Fn::Base64" : {
"Fn::Join" : [
"", [
"#!/bin/bash\n",
"adduser webadm\n",
"su - webadm\n",
"/bin/mkdir /home/webadm/.ssh\n",
"chmod 700 .ssh\n",
"cd .ssh\n",
"/bin/touch /home/webadm/.ssh/authorized_keys\n",
"chmod 600 authorized_keys\n",
"curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key > /home/webadm/.ssh/authorized_keys\n"
]
]
}

就像魅力一样。

关于amazon-web-services - 我们可以通过cloudformation模板创建用户吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com