如何替换用于访问AWS EC2机器的key-pair密钥对
SSH密钥对替换操作步骤(适用于3台共用密钥的机器)
前置准备
在本地操作设备上生成新的SSH密钥对,不要直接覆盖旧密钥,避免直接失去设备访问权限:
- 执行命令生成新密钥,自定义存储路径防止覆盖旧文件,示例如下:
ssh-keygen -t ed25519 -f ~/.ssh/new_id_rsa -C "new_ssh_access_key"
步骤1:推送新公钥到所有目标机器
使用旧密钥的登录权限,将新公钥追加到3台机器的授权密钥列表中,不要直接覆盖原有授权文件:
- 推送至machineA:
ssh-copy-id -i ~/.ssh/new_id_rsa.pub 登录用户名@machineA地址 - 推送至machineB:
ssh-copy-id -i ~/.ssh/new_id_rsa.pub 登录用户名@machineB地址 - 推送至machineC:
ssh-copy-id -i ~/.ssh/new_id_rsa.pub 登录用户名@machineC地址
若目标机器SSH端口不是默认22,需要在命令中补充
-p 自定义端口号参数。
步骤2:验证新密钥登录有效性
全部推送完成后,必须先测试新密钥的登录能力,全部验证通过才能进行后续操作:
- 测试machineA登录:
ssh -i ~/.ssh/new_id_rsa 登录用户名@machineA地址 - 测试machineB登录:
ssh -i ~/.ssh/new_id_rsa 登录用户名@machineB地址 - 测试machineC登录:
ssh -i ~/.ssh/new_id_rsa 登录用户名@machineC地址
如果出现登录失败的情况,先排查目标机器~/.ssh目录权限是否为700、~/.ssh/authorized_keys文件权限是否为600,以及公钥内容是否正确完整追加到授权文件中。
步骤3:移除旧密钥完成替换
- 分别登录3台目标机器,编辑
~/.ssh/authorized_keys文件,找到对应旧密钥的行删除后保存退出。 - 本地替换默认SSH密钥(可选,如果你需要将新密钥设为默认登录密钥):
- 备份旧密钥:
mv ~/.ssh/id_rsa ~/.ssh/old_id_rsa && mv ~/.ssh/id_rsa.pub ~/.ssh/old_id_rsa.pub - 替换新密钥为默认名称:
mv ~/.ssh/new_id_rsa ~/.ssh/id_rsa && mv ~/.ssh/new_id_rsa.pub ~/.ssh/id_rsa.pub
- 备份旧密钥:
- 最后无指定密钥测试登录所有机器,确认可以正常访问即可。
提示:确认所有设备都可以正常用新密钥登录后,再删除本地备份的旧密钥文件,避免出现意外无法登录的问题。
内容的提问来源于stack exchange,提问作者Rpj
相关产品推荐
相关产品推荐

