在EC2中,我旋转了一个CentOS v6.5
实例,我也得到了Key Pair
(当然)。但问题是,我希望它会像往常一样创建ec2-user
用户,以便我可以使用ec2-user
名称并使用key pair
登录。
但现在不是。相反,密钥直接用于root
。而且也没有ec2-user
。
所以我的基本问题是:
key pairs
个文件? (所以“michael”不需要使用密码,只需使用它自己.pem
) key pair
) 注意:如果可以提供简单(直接)的逐步说明,那将是非常值得的。
答案 0 :(得分:14)
创建用户:
# 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
移交给迈克尔。这只是私钥。通常AWS会将.pem
附加到私钥。
现在michael可以使用私钥key
登录,如下所示:
ssh -i key michael@<ec2_host_name>
答案 1 :(得分:0)
最简单的方法是在实例初始化期间使用 cloud-init 和用户数据。
在创建 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,这可以轻松实现自动化。