无法通过 ssh 进入 AWS EC2 服务器

Could not ssh into AWS EC2 server

我遇到了一个有趣的问题。我启动了一个 ubuntu 14.04 的 ec2 实例。我可以通过提供如下所示的密钥文件来连接它。

ssh -i "xxxxx.pem" ubuntu@xxxxxxxxxxxx.ap-south-1.compute.amazonaws.com

但我考虑过创建另一个帐户,而不是总是使用 ubuntu(root),这是不安全的。所以我在服务器上以我的名字创建了另一个帐户。为了更加安全,我想到了创建私有(id_rsa)和public(id_rsa.pub)密钥文件。并将 public 密钥放入服务器 .ssh/authorized_keys 中,这样我就可以从我的本地计算机上使用我的新帐户进行 ssh。这也有效。现在我可以像下面这样通过 ssh 进入服务器了。

ssh naroju@XXXXXXXXXXXXXXX.ap-south-1.compute.amazonaws.com

问题来了。虽然我可以从我的新帐户 ssh 进入它,但我不能从我的 ubuntu(root) 帐户 ssh 进入服务器。它给出以下错误。

Permission denied (publickey).
  1. 为什么会给我这个错误?
  2. 我想知道为什么它从我的新帐户ssh到服务器,它不需要私钥文件(AWS的.pem文件)吗?

要在实例上创建新用户(例如 naroju),您应该在新用户的主目录中创建一个 .ssh/authorized_keys 文件:

$ sudo adduser naroju
$ sudo su - naroju
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys

然后,编辑 authorized_keys 文件并添加 public 键 .

然后您可以登录新用户:

$ ssh -i naroju.pem naroju@IPADDRESS

由于您修改了 ubuntu 用户主目录中的 public 密钥,因此您需要使用所选密钥对的私有部分以 ubuntu 身份登录。然后你可以运行上面的命令。

请参阅 Amazon EC2 文档:Managing User Accounts on Your Linux Instance