创建具有多个密钥对的ec2实例

Pat*_*ttu 23 cloud ssh ssh-keys boto amazon-web-services

在创建ec2实例时,我们提供密钥对名称.

但通常,我将多个ssh公钥/私钥与任何远程服务器关联.我知道一旦创建了ec2服务器,就无法附加密钥对.所以我想知道在创建实例时是否可以使用多个密钥对.

Rog*_*ann 30

不幸的是,也无法导入具有两个条目的密钥.仅将第一个条目导入新密钥对.

你可以做的是:

不要使用EC2密钥对,而是使用该user_data字段在/home/<user>/.ssh/authorized_keys文件中插入多个SSH公钥,其中是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
Run Code Online (Sandbox Code Playgroud)

用户数据脚本运行,root因此您无需指定sudo.

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

请注意,您不知道简单外观使用的是哪些键.您需要访问机器进行检查.

  • 这种方法的示例可以在 https://www.bogotobogo.com/DevOps/Terraform/Terraform-terraform-userdata.php 找到 - 类似 `user_data = "${file("install_apache.sh")}` (2认同)

Boe*_*boe 6

你不能......只能手动编辑〜/ .ssh/authorized_keys并添加你想要访问的额外用户的公钥.这种方法的缺点是,当您的EC2终止时,您将不得不重新执行此操作.在开发人员/测试环境中不太方便...... :(


Nav*_*jay 5

您无法将多个密钥对关联到一个 EC2 实例。

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

流程是这样的

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

更多信息 -使用身份验证密钥而不是密码的 SSH

  • 我不明白。如果您无法将多个密钥对关联到一个 EC2 实例,那么多个用户如何使用该实例呢?每个用户不应该有自己的密钥/对吗? (4认同)