我创建了一个带有免费套餐选项的微型 ec2 实例。使用一周后,我意识到我需要更多内存。因此,我考虑将实例类型从微型更改为小型(我必须按使用付费)。
我停止了该实例,将其类型从微型更改为小型并重新启动它。
将实例类型更改为小型后,我获得了一个新的公共 DNS,可以使用它访问我的应用程序。但我现在无法使用 WinSCP/Putty/Linux shell 连接到实例。它说“服务器拒绝我们的密钥”在窗户上,“权限被拒绝(公钥)”在Linux中。
有人能帮助我解决这个问题吗?
答案1
创建实例时,可以选择现有密钥对之一或创建新密钥对。只是,您没有为小型实例选择与微型实例相同的密钥对。
查看 AWS 仪表板中的两个实例,在描述选项卡下,您会找到“密钥对名称”字段。
不幸的是,您无法更改正在运行的实例的密钥对。您需要重新创建小实例并仔细检查您使用的密钥对。
否则,请检查新的密钥对并获取公钥,登录您的帐户,转到“安全凭证”并单击“密钥对”选项卡。
如果您没有私钥的副本,则无法恢复。
答案2
听起来好像实例已重置为您创建实例时亚马逊颁发的密钥。
您可以尝试一下登录。
答案3
不要更改路径 /home/ec2-user 下 ec2-user 目录的权限和所有权。
如果这样做,那么您将无法再次重新登录并收到服务器拒绝密钥错误。
答案4
我的问题解决了。我正在更改 ec2-user 主目录的权限,以便其他用户可以访问它。这导致 SSH 无法连接!一旦将原始权限恢复到 ec2-user 主目录,问题就解决了!