我本质上是一个AWS noob.
我让开发人员设置了一个带有负载均衡器的EC2实例来托管基于node.js的API.他现在已经离开了公司,但如果他愿意,他仍然有私钥登录.我想换钥匙.
根据我的阅读,我需要重新启动实例以获得新的密钥对.但是,如果我这样做,我会丢失所有节点包,以及当前实例上安装的其他SW吗?负载均衡器会发生什么?我是否需要更新DNS信息以指向新IP?
(一旦定位,这次我将创建多个密钥对供开发人员使用.)
谢谢,史蒂夫
编辑:是的,我有私钥,可以做我需要的一切.我只是想确保他不再有权访问.
获取当前实例的AMI以进行备份.这将重新启动实例,但它将保留现有IP.您无需将其从ELB中删除.如果您在更改密钥后无法重新连接,则可能需要此AMI.
使用现有密钥以root用户身份登录.
从shell中,运行以下命令:
$ ssh-keygen -t rsa -b 2048 -f user
- 这会生成一个新密钥对
$ sudo su -
- 如果需要的话
$ cp /home/ubuntu/.ssh/authorized_keys /home/ubuntu/.ssh/authorized_keys.bak
- 备份现有公钥
$ mv user.pub /home/ubuntu/.ssh/authorized_keys
- 这将替换authorized_keys文件中的现有公钥
$ chmod 600 /home/ubuntu/.ssh/authorized_keys
- 更改文件的权限
将从$ ssh-keygen命令生成的私钥(名为user的文件)复制到本地计算机,并将其从实例中删除.
使用新私钥连接到实例以进行确认.重要信息:保持现有ssh会话打开,并使用新密钥创建新会话.
如果您在步骤10中遇到任何问题,您仍然可以访问现有会话以进行故障排除.
至于清理,请确保从AWS控制台中删除旧密钥对,并使任何凭据IF(!)无效,以便运行现有服务.如果您授予开发人员对AWS控制台的root访问权限,则应重置这些凭据.
注意:这些步骤假定Ubuntu安装.如果您使用的是任何其他Linux类型,请\ubuntu
使用正确的AWS用户名替换:
Amazon Linux: ec2-user Ubuntu ubuntu Debian admin RHEL 6.4 ec2-user RHEL 6.3 root