我正在禁用AWS EC2实例上的根login。 在设置PermitRootLogin no并重新启动sshd之后,我在closuresterminal时出现了意外 – 在使用sudo权限设置用户之前。 结果是我以root身份进入实例的密钥不起作用(sshd禁止它),当我使用普通用户login到实例时,我无法获得root权限(root密码从未设置)。 该实例正在运行Ubuntu 8.10。 任何人有任何想法如何解决这个问题?
不,不要终止实例,一切都不会丢失!
PS下次尝试Userify来pipe理你的用户的密钥:)
在没有发现漏洞的情况下,在Linux机器上获得root权限的唯一方法是启动到单用户模式并重置密码。 但是,您无法在EC2实例上访问KVM级别,所以这是不可能的。
您需要终止该EC2实例并启动另一个实例。 但是禁用根login与EC2的一般范例相违背。 Amazonbuild议您在实例启动时提供一个公共密钥,并将init脚本安装到/root/.ssh/authorized_keys中,并将sshdconfiguration为“PermitRootLogin without-password”,仅强制密钥对login。 这样,你永远不会意外地将自己locking在你的root帐户之外(假设你不丢失你的私钥)。
将来,我build议你创build一个sudo访问权限的用户,然后在你login后立即启动一个“屏幕”会话,以便断开连接不会停止/中断你的工作。 configuration并安装应用程序后,捆绑,上载和捆绑AMI,以便在需要时启动新的实例。
在禁用rootlogin之前,您是否有任何对实例所做的更改而保存了AMI? 否则,您将不得不返回到您开始使用的基本AMI,并创build一个新的EC2实例。
一种方法是在系统中查找本地漏洞,这可以授予您一个root shell。 获取安装在框中的软件列表以及google / securityfocus中的每一个。