我有一个使用 EBS 的 AWS EC2 实例,我想停止使用当前私钥,并使用新私钥。据我了解,仅在 AWS 控制台上删除密钥对只会删除公钥,而不会阻止使用(旧)私钥通过 SSH 访问实例。
我尝试了一种解决方法(详细内容在这里),但我意识到这并不能阻止旧私钥的使用。
有没有办法继续使用此实例并防止使用旧私钥并发布新私钥,而无需创建新实例并重新安装所有内容?您可以进入 Linux 和 SSH 并手动删除对特定密钥的支持吗?
我可以根据需要提供有关实例配置的详细信息。
答案1
EC2 密钥对显示在 AWS 控制台面板上,仅用于初始化 EC2 实例,并授予您使用提供的密钥对对它们的初始访问权限。因此,在 AWS 控制台面板上删除它们不会对现有实例产生影响。请参阅AWS 文档。
防止使用旧的私钥,您需要.ssh/authorized_keys
在远程 EC2 实例上编辑该文件,删除相应的条目,即您的 EC2 密钥对的公钥。
请记住将您的新公钥添加到authrozied_keys
文件中,并在删除旧公钥之前对其进行测试,否则您可能会被锁定在您的 EC2 实例之外。
颁发新密钥对,在本地Linux机器上使用ssh-keygen
命令,调用时不带参数,是一个交互式程序。
并使用ssh-copy-id
自动将您的新密钥应用到您的实例。
答案2
如果您使用 Linux,EC2 与任何其他 Linux 安装一样,因此您需要做的就是从文件中删除旧密钥authorized_keys
并从文件夹和 AWS 控制台中删除私钥,.ssh
以确保它不会再次出现。
如果我没记错的话,Web 控制台中的安全密钥会生成新实例使用的第一个密钥和提供对 EC2 API 的访问(使用工具或其他方式),但删除它们并不会将它们从您的实例中删除。