【问题标题】:Could not ssh into AWS EC2 server无法通过 ssh 进入 AWS EC2 服务器
【发布时间】:2017-03-11 02:10:28
【问题描述】:

我面临着有趣的问题。我已经启动了一个 ec2 实例,它是 ubuntu 14.04。我可以通过提供如下所示的密钥文件 ssh 进入它。

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

但我想在实例中创建另一个帐户,而不是始终使用不安全的 ubuntu(root)。所以我在服务器上用我的名字创建了另一个帐户。为了更安全,我想创建私有(id_rsa)和公共(id_rsa.pub)密钥文件。并将公钥放在服务器.ssh/authorized_keys 中,我应该能够从我的本地机器上的新帐户中进行 ssh。这也是有效的。现在我可以像下面这样通过 ssh 进入服务器了。

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

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

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

【问题讨论】:

  • 你添加的.ssh/authorized_keys的完整路径是什么?
  • 服务器中是/home/ubuntu/.ssh/authorized_keys
  • 好的,如果你在/home/ubuntu更改了它,那么你更改了ubuntu用户的密钥。如果你现在想以ubuntu登录,你需要提供新添加的公钥对应的私钥
  • 我刚刚删除了 /home/ubuntu/.ssh/authorized_keys 并在提供 .pem 文件时实现了 ssh 。结果相同。
  • 你不能删除它,你需要一对:.ssh/authorized_keys 的公共的,你的 ssh 客户端的私有的

标签: amazon-web-services ubuntu amazon-ec2 ssh-keys ssh-keygen


【解决方案1】:

要在实例上创建一个新用户(例如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 文件并添加公钥

然后您可以登录到新用户:

$ ssh -i naroju.pem naroju@IPADDRESS

由于您修改了ubuntu 用户主目录中的公钥,您需要使用您选择的密钥对的私有部分以ubuntu 登录。然后就可以运行上面的命令了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-21
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 2017-03-26
    相关资源
    最近更新 更多