10

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

但现在不是。相反,关键是root直接。而且也没有ec2-user

所以我的基本问题是:

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

注意:如果可以提供一个简单(直接)的分步说明,那将是非常可观的。

4

2 回答 2

18

创建用户:

# 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>
于 2014-09-22T06:03:43.790 回答
1

实现这一点的最简单方法是在实例初始化期间使用 cloud-init 和用户数据。

创建 EC2 实例时,将以下脚本复制并粘贴到用户数据字段中。

对于username,输入新用户的用户名。对于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,这可以很容易地自动化。

于 2021-06-04T11:18:27.803 回答