-
访问EC2控制台的密钥对: https://console.amazonaws.cn/ec2#KeyPairs
-
点击右上角的创建密钥对
, 起个名称, 密钥对类型使用RSA
, 私钥文件格式使用.pem
-
创建后浏览器会自动下载名称相同的后缀为.pem的私钥文件, 千万保存好这个文件, 这个下载只有一次
-
右键点击开始按钮 > Windows PowerShell, 参考下面命令从私钥文件中检索公有密钥(-f
参数后面请根据实际情况替换为pem文件的完整路径, 下面例子操作的是浏览器默认下载的文件夹):
PS C:\Users\lpwm> ssh-keygen -y -f $env:userprofile\downloads\newkey.pem
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCleU4KMARvUYE8fSb7ZOJX/gSlVKS4n8v2fWvY5eozOWrn7wiejwvXcFtosR9I6fgLynoQTS8yHknmWOdbuWOhyy9j+PFhISUTtfumba+9e7jnljV7K5brReOA2NbdyiU2M5cE09CY7zHSl9iV1WzLbDjQs/bsI8bViirEEHDnlpyOKOOugYDFvdLVvsI9BWmQK7A/sj4Z+ZyxbUZtEcSOrWsPSv+3yY9XVB9KZe5vBRHwsbvkStrytVAXfUs78k5IlquUdqVq9AVR4EFW5EaIHHQd2u0VpnWdZcEbFa79N0nZWybIPw8YWT3gnjt3QL0/zaxvao661osCLSFHQis1
记录上面命令输出的结果(从ssh-rsa
开始一直到最后一个字符):
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCleU4KMARvUYE8fSb7ZOJX/gSlVKS4n8v2fWvY5eozOWrn7wiejwvXcFtosR9I6fgLynoQTS8yHknmWOdbuWOhyy9j+PFhISUTtfumba+9e7jnljV7K5brReOA2NbdyiU2M5cE09CY7zHSl9iV1WzLbDjQs/bsI8bViirEEHDnlpyOKOOugYDFvdLVvsI9BWmQK7A/sj4Z+ZyxbUZtEcSOrWsPSv+3yY9XVB9KZe5vBRHwsbvkStrytVAXfUs78k5IlquUdqVq9AVR4EFW5EaIHHQd2u0VpnWdZcEbFa79N0nZWybIPw8YWT3gnjt3QL0/zaxvao661osCLSFHQis1
如果是在WSL或Linux/Mac中执行上面操作可能会遇到权限问题, chmod 400 newkey.pem
改一下权限就好
-
EC2控制台中关闭当前的实例, 然后依次选择: 操作 - 实例设置 - 编辑用户数据
-
参考下面格式修改用户数据的内容:
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
- name: ubuntu
ssh-authorized-keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCPkVFzF/LDJsNq5JhbSR1T0PdQHlmdhii/4aTZ8QBBuPw2YgcXs+jpNcT9wnXkbwAYZw2lB67fHAW37OYoqFT7/0XiSQCTuZGG0eG8ILcxCVKmoVHkJ32rGQasaqFAb/Mg7CRH4HUTrOk7Ybsgl3IU9CnkkBn48G3kDUs+eq6WmwWZq24h3Z4QvCYfC8OtfocJRto95rIy7sX2INdQKwtGz+GYkuvPwQmnRDobTQAOIJKKWKoSk6wqN2dF0/QZ1Vr7tBJppw0ECOVUeWLIQNqjNIhBoN8dLeczZuhvJ1q4hE+tRc0Af69ohqQxJKJ27zZmdrRDQDudT42sgieUPRyH
注意修改- name:
后面为实例中已有的用户名, 不同AMI对应的默认用户名不同, 可以参考:
MI | 默认SSH用户名 |
---|
Amazon Linux | ec2-user |
Ubuntu | ubuntu |
RHEL | ec2-user |
其他 | 参考AMI说明 |
修改ssh-authorized-keys:
下面一行的内容为-
+空格+上面第4步记录的公钥内容, 如图:
点击保存按钮完成设置
-
启动实例并刷新观察控制台中实例状态变为正在运行
, 从本地电脑使用新的密钥对pem文件再次连接实例
ssh -i newkey.pem ubuntu@x.x.x.x
-
最后一步, 由于用户数据中包含密钥对的公钥信息, 连接成功后需要再将实例关闭, 重复第5步修改用户数据, 将之前输入的内容全部删除后保存, 再重新启动实例.
至此实例替换密钥对操作全部完毕.