复制到 EC2 时出现权限被拒绝(公钥)错误
Permission denied (publickey) error while copying to EC2
我正在尝试将文件从本地复制到 Aws EC1 或 EC2。
我的详细设置。
创建了两个 EC2 实例。
从 AWS 控制台获得 .pem 文件(私钥)。
从 .pem 文件生成私钥(步骤 2)。
能够使用步骤3中生成的私钥连接EC1和EC2
在 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
文件。两个可能的原因
设置chmod 400 your.pem
然后尝试连接
在您的 ssh 命令中指定密钥
ssh -i path_to_key/private.pem ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com
可能用户 ubuntu 在这种情况下不存在,您可以尝试使用 root 并且 AWS 将 return 可以 ssh 到该服务器的用户。
您还可以获得 AWS ec2 console 的 ssh 命令。 -> Select 实例并单击连接,复制命令并尝试连接。
我正在尝试将文件从本地复制到 Aws EC1 或 EC2。
我的详细设置。
创建了两个 EC2 实例。
从 AWS 控制台获得 .pem 文件(私钥)。
从 .pem 文件生成私钥(步骤 2)。
能够使用步骤3中生成的私钥连接EC1和EC2
在 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
文件。两个可能的原因
设置
chmod 400 your.pem
然后尝试连接在您的 ssh 命令中指定密钥
ssh -i path_to_key/private.pem ubuntu@ec2-18-222-170-204.us-east-2.compute.amazonaws.com
可能用户 ubuntu 在这种情况下不存在,您可以尝试使用 root 并且 AWS 将 return 可以 ssh 到该服务器的用户。
您还可以获得 AWS ec2 console 的 ssh 命令。 -> Select 实例并单击连接,复制命令并尝试连接。