复制到 EC2 时出现权限被拒绝(公钥)错误

Permission denied (publickey) error while copying to EC2

我正在尝试将文件从本地复制到 Aws EC1 或 EC2。

我的详细设置。

  1. 创建了两个 EC2 实例。

  2. 从 AWS 控制台获得 .pem 文件(私钥)。

  3. 从 .pem 文件生成私钥(步骤 2)。

  4. 能够使用步骤3中生成的私钥连接EC1和EC2

  5. 在 EC1 和 EC2 服务器中复制 .pem 文件,通过这样做我能够在 EC1 和 2 个 aws 服务器之间复制文件。

现在我想将文件从我的本地计算机复制到 AWS EC1 和 EC2 服务。

但是当我尝试执行以下命令时(使用 public DNS):

ssh ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com 

低于错误

Permission denied (publickey)

当我使用私有 DNS 时:

ssh ubuntu@ip-172-31-43-162.us-east-2.compute.internal

出现以下错误:

ssh: Could not resolve hostname ip-172-31-43-162.us-east-2.compute.internal: Name or service not known

我应该怎么做才能解决这个问题或让它发挥作用?

输出

OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: resolving "ip-172-31-43-162.us-east-2.compute.internal" port 22
ssh: Could not resolve hostname ip-172-31-43-162.us-east-2.compute.internal: Name or service not known

首先,ssh ubuntu@ip-172-31-43-162.us-east-2.compute.internal 这只能在 VPC 内工作,因为它的 私有 IP 并且您的本地系统永远不会能够解析此 DNS,直到您从该 VPC 连接到某个 VPN。

这不是安全组问题,您的实例可以访问。

您应该 post 为 ssh ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com 调试日志,您可以使用 ssh -v ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com

获取调试日志

但我确定它没有从正确的位置选择 pem 文件。两个可能的原因

  1. 设置chmod 400 your.pem然后尝试连接

  2. 在您的 ssh 命令中指定密钥

    ssh -i path_to_key/private.pem ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com

  3. 可能用户 ubuntu 在这种情况下不存在,您可以尝试使用 root 并且 AWS 将 return 可以 ssh 到该服务器的用户。

您还可以获得 AWS ec2 console 的 ssh 命令。 -> Select 实例并单击连接,复制命令并尝试连接。