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

时间:2014-06-25 12:47:26

标签: amazon-web-services ssh cloud boto ssh-keys

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

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

4 个答案:

答案 0 :(得分:24)

不幸的是,也无法导入具有两个条目的密钥。只有第一个条目被导入新密钥对。

可以做的是:

不要使用EC2密钥对,而是使用public E find(E x) { return find(root,x); } private E find(BinaryNode<E> n, E x) { if (n == null) { return null; } else if (n.element.equals(x)) { return n.element; } else if (x.compareTo(n.element) < 0) { return find(n.left, x); } else { return find(n.right, x); } } 字段在user_data文件中插入多个SSH公钥,其中是AMI的标准用户(ubuntu,ec2_user等)。 )。

您可以为每个启动的EC2实例添加/home/<user>/.ssh/authorized_keys。请考虑以下示例:

user_data

用户数据脚本以#!/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

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

注意但是,您不知道简单外观正在使用哪些键。您需要访问机器才能检查它。

答案 1 :(得分:6)

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

答案 2 :(得分:0)

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

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

这个过程是这样的

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

更多信息 - SSH with authentication key instead of password

答案 3 :(得分:0)

最简单,简单和标准的方法是将另一个(本地计算机的)SSH公钥添加到远程EC2实例中。

要从本地计算机生成密钥,请使用:ssh-keygen命令。 然后将您本地计算机的.pub生成的密钥应用于EC2实例的 $ HOME / .ssh / authorized_keys

通过从本地计算机登录EC2来验证操作,甚至不使用SSH登录命令的 -i 选项。