EC2使用他们的OWN密钥对创建新的Linux用户?

时间:2014-09-22 03:47:37

标签: linux amazon-ec2 key-pair

在EC2中,我旋转了一个CentOS v6.5实例,我也得到了Key Pair(当然)。但问题是,我希望它会像往常一样创建ec2-user用户,以便我可以使用ec2-user名称并使用key pair登录。

但现在不是。相反,密钥直接用于root。而且也没有ec2-user

所以我的基本问题是:

  • 如何创建每个其他(新)用户,(现在让我们称之为“michael”作为一个新用户),使用他们新生成的(自己的不同){{1 } key pairs个文件? (所以“michael”不需要使用密码,只需使用它自己.pem
  • 再次,另一位新用户再次使用新密钥对。 (比方说,用户key pair

注意:如果可以提供简单(直接)的逐步说明,那将是非常值得的。

2 个答案:

答案 0 :(得分:14)

创建用户:

# 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移交给迈克尔。这只是私钥。通常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,这可以轻松实现自动化。