EC2使用自己的密钥对创建新的Linux用户



在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

以上命令将创建两个文件:keykey.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,这可以很容易地实现自动化。

最新更新