首页 > 解决方案 > AWS ssh 公钥被拒绝

问题描述

有很多关于这个的问题和讨论。我也尝试按照文档进行操作,但无法弄清楚。

基本上我可以使用我的 pem 密钥进行 sshssh -i "xyz.pem" ubuntu@ec2-134-13-11-45.ap-south-1.compute.amazonaws.com

但是现在我需要在没有 pem 的情况下正常 ssh 它,就像ssh ubuntu@ip 它一直显示为权限被拒绝的公钥一样。

所以我使用 keygen 生成公钥,并通过在 ubuntu 实例中创建一个新目录,设置 chmod 700 和 chmod 600 权限,将其.ssh/authorized_keys 从本地系统推送到服务器.ssh

仍然每当我尝试直接访问它时,ssh@ubuntu.ip我都会不断收到错误..

这是一个非常基本的问题,请帮助我解决这个问题!

标签: amazon-web-servicesubuntuamazon-ec2ssh

解决方案


您似乎正在混合“发送”方和“接收”方。

启动 SSH 连接时,您必须发送 SSH 密钥。这可以通过您显示的选项来完成,也可以通过将数据存储在以下-i位置来将其配置为SSH 别名.ssh/config

Host foo
  User ec2-user
  HostName 54.1.2.3
  IdentityFile ~/xyz.pem

然后这将启动一个 SSH 会话ssh foo

接收方,公钥对必须存储在用户的~/.ssh/authorized_keys文件中。当 Linux 收到通过 SSH 连接的请求时,它会检查该文件是否有匹配的密钥对。

因此,看起来您在实例上做了正确的事情,但您需要在自己的计算机上配置文件。


推荐阅读