在EC2中,我旋转了一个CentOS v6.5
实例,当然我也得到了一个Key Pair
。但问题是,我希望它能像以前一样创建ec2-user
用户,这样我就可以使用ec2-user
名称并使用该key pair
登录。
但现在不是。相反,关键是直接用于root
。并且也不存在CCD_ 7。
所以我的基本问题是:
- 如何创建每个额外的(新)用户(现在让我们将"michael"作为一个新用户),通过使用他们新生成的(自己不同的)
key pairs
.pem
文件登录(这样"michael"就不需要使用密码,只需使用自己的key pair
即可) - 再次,另一个新用户再次使用新的密钥对(比方说,用户
annie
)
注意:如果能提供一个简单(直接)的循序渐进的指导,那将是非常可观的
创建用户:
# useradd michael
为他生成一个密钥对:
# ssh-keygen -b 2048 -t rsa -f key -C michael
以上命令将创建两个文件:key
和key.pub
为michael创建.ssh
目录,并复制.pub
文件,如下所示:
# su - michael
# mkdir .ssh && cd .ssh
# cat > authorized_keys < key.pub
# chmod 0700 ~/.ssh; chmod 0600 ~/.ssh/authorized_keys
将key
移交给michael。这不过是私钥。通常AWS会将.pem
附加到私钥中。
现在michael可以使用私钥key
登录,如下所示:
ssh -i key michael@<ec2_host_name>
实现这一点的最简单方法是在实例初始化期间使用云初始化和用户数据。
在创建EC2实例时,将以下脚本复制并粘贴到"用户数据"字段中。
对于用户名,输入新用户的用户名。对于ssh-rsa AB3nzExample,请输入您的公钥。
#cloud-config
cloud_final_modules:
- [users-groups,always]
users:
- name: username
groups: [ wheel ]
sudo: [ "ALL=(ALL) NOPASSWD:ALL" ]
shell: /bin/bash
ssh-authorized-keys:
- ssh-rsa AB3nzExample
如果您使用Terraform,这可以很容易地实现自动化。