当前位置:  开发笔记 > 编程语言 > 正文

如何在SSH密钥被泄露或丢失时保护AWS EC2实例

如何解决《如何在SSH密钥被泄露或丢失时保护AWSEC2实例》经验,为你挑选了1个好方法。

我本质上是一个AWS noob.

我让开发人员设置了一个带有负载均衡器的EC2实例来托管基于node.js的API.他现在已经离开了公司,但如果他愿意,他仍然有私钥登录.我想换钥匙.

根据我的阅读,我需要重新启动实例以获得新的密钥对.但是,如果我这样做,我会丢失所有节点包,以及当前实例上安装的其他SW吗?负载均衡器会发生什么?我是否需要更新DNS信息以指向新IP?

(一旦定位,这次我将创建多个密钥对供开发人员使用.)

谢谢,史蒂夫

编辑:是的,我有私钥,可以做我需要的一切.我只是想确保他不再有权访问.



1> Rodrigo M..:

    获取当前实例的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

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有