如何使用多个密钥对创建EC2实例



在创建EC2实例时,我们提供一个密钥对名称。

但一般来说,我将多个SSH公钥/私钥与任何远程服务器关联。我知道一旦EC2服务器被创建,就不可能附加密钥对,但我想知道在创建实例时是否可以使用多个密钥对。

不幸的是,也不可能导入包含两个条目的键。只有第一个条目被导入到新的密钥对中。

可以做的是:

不要使用EC2密钥对,而是使用user_data字段在/home/<user>/.ssh/authorized_keys文件中插入多个SSH公钥,其中<user>是您的AMI的标准用户(ubuntu, ec2_user等)。

可以将user_data添加到每个正在启动的EC2实例中。考虑下面的例子:

#!/bin/bash
echo "ssh-rsa AAAA…" > /home/ubuntu/.ssh/authorized_keys
echo "ssh-rsa AAAA…" >> /home/ubuntu/.ssh/authorized_keys
chown ubuntu: /home/ubuntu/.ssh/authorized_keys
chmod 0600 /home/ubuntu/.ssh/authorized_keys

用户数据脚本作为root运行,所以不需要指定sudo

这样,您就可以在使用Ansible或类似的工具管理实例之前,通过Terraform等工具创建个性化的SSH访问密钥。

注意您不知道简单的外观正在使用哪些键。

你不能…唯一的方法是手动编辑 ~/.ssh/authorized_keys并添加您想要授予访问权限的其他用户的公钥。这种方法的缺点是,当EC2 get终止时,您必须重新执行此操作。

一个EC2实例不能关联多个密钥对

话虽如此,您可以创建多个用户,并通过SSH(使用密钥认证而不是密码)为他们提供对实例的访问权。

过程如下

  • 创建新用户
  • 分配/提供适当的权限和特权
  • 生成密钥证书
  • 将证书关联到用户

更多信息- SSH使用认证密钥而不是密码

最新更新