一、前言
密钥对:是由公有秘钥和私有秘钥组成的一组安全凭证,可在连接到Amazon EC2实例时用来证明您的身份。
Amazon EC2存储公有秘钥,私有秘钥需要您自行管理。对于Linux 实例,私有秘钥允许您安全地ssh进入您的实例,拥有私有密钥的任何人都可连接到您的实例。
当您的实例首次启动时,启动时指定的公有密钥将放在Linux实例的~/.ssh/authorized_keys 目中,在使用ssh连接到Linux实例时, 要进行登录,您必须指定与公有密钥对应的私有密钥。
场景描述
注意:要添加或替换密钥对,您必须能够连接到实例。如果您丢失了现有的私有密钥,或者在没有密钥对的情况下启动了实例,则您将无法连接到实例,因此无法添加或替换密钥对。当您更改实例上的公有密钥或添加密钥对,密钥对名称的值是不会更改。
如果您丢失了私有密钥,则可以检索它。参考文章“丢失私钥后,如何连接到实例”
二、演示
1、创建新的key pair(test-newkeypair)
导航到EC2控制台,点击创建秘钥对

Key pair type(密钥对类型):Amazon EC2 使用的密钥是 ED25519 或 2048-bit SSH-2 RSA 密钥,windows实例不支持ED25519密钥
Private Key file format(私有密钥文件格式):.pem 可以与Openssh 一起使用;.ppk可以与PuTTY一起使用
要添加标签到公有秘钥,选择Add tag,输入标签的键和值

点击创建密钥对,浏览器会自动下载该密钥对文件
注意:文件名是密钥对名称,这也是保存私有密钥文件的唯一机会,请保存好!!

如果您将在 macOS 或 Linux 计算机上使用 SSH 客户端连接到您的 Linux 实例,请使用以下命令设置您私有密钥文件的权限,以确保只有您可以读取它。
chmod 400 test-newkeypair.pem
如果不设置这些权限,则无法使用此密钥对连接到实例。
2、连接实例,从私钥检索公钥
实例信息

原秘钥名min-singapore

在本地 Linux 或 macOS 计算机上,可使用 ssh-keygen 命令检索密钥对的公有密钥。指定您已在其中下载私有密钥的路径(.pem 文件)。
1)使用rz将刚创建的新的私有秘钥文件(test-newkeypair.pem)上传到服务器(实例)
运行命令下载安装rz
sudo yum install lrzsz -y

输入rz 选择新秘钥。
2)将返回的公钥复制保存下来
ssh-keygen -y -f /home/ec2-user/test-newkeypair.pem

注意:修改私有秘钥的权限400
3、将新公钥添加/替换到 .ssh/authorized_keys文件中
1)查看原.ssh/authorized_keys

2)将新公钥添加到authorized_keys
cat >> .ssh/authorized_keys

3)查看新公钥是否添加成功

或者删除旧公钥,替换成新公钥

注意:从实例中删除公有密钥并断开与实例的连接后,您将无法再次连接到该实例,除非 AMI 提供了其他登录方式。
4、重新登录实例
导入新的密钥


连接实例

