在创建ec2实例时,我们提供密钥对名称.
但通常,我将多个ssh公钥/私钥与任何远程服务器关联.我知道一旦创建了ec2服务器,就无法附加密钥对.所以我想知道在创建实例时是否可以使用多个密钥对.
你不能......只能手动编辑〜/ .ssh/authorized_keys并添加你想要访问的额外用户的公钥.这种方法的缺点是,当您的EC2终止时,您将不得不重新执行此操作.在开发人员/测试环境中不太方便...... :(
不幸的是,也无法导入具有两个条目的密钥.仅将第一个条目导入新密钥对.
你可以做的是:
不要使用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
用户数据脚本运行,root
因此您无需指定sudo
.
这样,您可以在使用Ansible或类似工具管理实例之前,通过Terraform等工具创建个性化SSH访问密钥.
请注意,您不知道简单外观使用的是哪些键.您需要访问机器进行检查.