mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第1张图片 f0cb81e727a35693410d67c288a108ed.gif

一些初次使用 AWS 的小伙伴可能会碰到 SSH 连接不到  Linux EC2 的问题,别着急,这篇文章帮你排查常见原因!

无法通过 SSH 连接 EC2 的常见原因通常分为两类,连接超时以及权限错误。根据实际连接时返回的报错信息,直接查看对应的篇章即可。

  • 连接超时,报错信息通常包含 connect 等关键词,如  Connection Timed Out (连接超时)等,一般是 网络设置 不当导致,需要检查对应的 IP、安全组、ACL、子网路由表、用户所处网络环境等;

  • 权限错误,报错信息通常包含 permission 或者 key 等关键词,如 Permission Denied (权限不足) 或者提示 Key 未注册、key 不存在等相关提醒,一般是由 秘钥或者用户名 不当使用导致。

00

如何使用 SSH 命令?

在动手检查问题之前,我们需要清楚知道如何使用常见的 SSH 客户端连接到 EC2,如果您对此还不熟悉,可以根据自己所使用的操作系统学习对应的技术文档。如果您的操作系统是 Linux 或 MacOS,请参考使用 SSH 连接到 Linux 实例 ,您如果使用的是  Windows 系统,请参考 使用 putty 从 windows 连接到 linux 实例

01

连接超时

问题描述

创建并启动了 Amazon EC2 Linux 实例,但是无法使用 SSH 或通过 SSH 连接的实用工具(如 PuTTY)连接到实例。在连接到实例时,连接超时,出现类似以下内容的错误:Network error: Connection timed out 或者Error connecting to [instance], reason: -> Connection timed out: connect。 该问题通常是由于安全组,路由表,网络 ACL 等网络配件设置不正确导致的。请按照故障排除中的几个步骤检查网络环境。

如遇到其他错误,请查看本文的其他章节。

故障排除:

01

检查安全组

安全组中的 source 为允许访问的 IP 源, port 为允许访问的端口。这是最常见的错误。请检查该实例是否有开放 22 端口,并且允许您的 IP 段访问(source)。提醒一下,为了安全考虑,请尽量将您的 source 定义为只允许特定的 IP 地址段访问(如下图所示,单个 IP 需要在最后加 /32 的后缀), 请检查当前机器的 IP 是否符合此 IP 段。

如果在办公局域网中, 您的 IP  地址可能无法固定,每次上网会发生变化。在这种情况下,此时建议设置 source  为您的办公网络的 IP  段,而不是单个 IP 。

●  如果不知道如何操作,请阅读图下方的详细教程。

●  补充说明:默认情况下该实例也无法 ping 通,如果希望 ping 这台实例,需要以类似的方法添加允许 ICMP 协议的规则。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第2张图片

具体参考如下:

  1. 打开 Amazon EC2 控制台。

  2. 在导航窗格中,选择 Instances。

  3. 查找要通过 SSH 连接的 EC2 实例。

  4. 在屏幕底部的 Description 选项卡中,选择要连接的 EC2 实例的安全组。

  5. 在屏幕底部的窗格中的 Inbound (入站) 选项卡中,确保设置了允许从当前公有 IP 地址进行  SSH 访问的规则。

  6. 如果设备所使用的 IP 不在列表中,请选择 Edit,然后选择 Add rule。

  7. 对于 Source,选择 您当前使用的 IP 。0.0.0.0/0  代表对所有 IP 开放。

  8. 选择 Save

02

检查子网是否为公有子网

公有子网是指允许 Internet 访问的子网。如果您的 EC2 在私有子网中,外界 Internet 是无法进行主动连接的, SSH 也会失败。

检查方法是,选择 VPC 服务,在 左侧的路由表(Route Table)中,选择 EC2 所在的子网,检查路由设定。

  • 如果有红框所标注的指向 Internet 网关的路由,则子网为公有子网,这一步没有问题。请检查下一步。

  • 如果缺失指向网关的路由,需要编辑并创建将 0.0.0.0/0 指向您的 Internet 网关 ID 的路由 (如图中红框所示)。如果该 VPC 中没有网关 ( IGW ), 则需要先添加一个。如果不知道如何操作,请阅读图下方的详细步骤教程。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第3张图片

具体操作如下:

  1. 开 Amazon VPC 控制台。

  2. 在导航窗格中,选择 Route Tables,然后从列表中选择您的 VPC 路由表。

  3. 在 Routes (路由) 选项卡中,确保有指向  Internet 网关的默认路由。

  4. 如果没有,请从导航窗格中选择 Internet Gateways,并复制您的 Internet 网关 ID。如果没有 Internet 网关,请创建一个并将其连接至您的VPC。确保复制新 Internet 网关 的  ID。

  5. 返回到 Route Tables,然后选择 Routes 选项卡。

  6. 编辑并创建将 0.0.0.0/0 指向您的 Internet 网关 ID 的路由。

  7. 保存路由表。

03

检查子网的网络访问控制列表 (ACL)

ACL 为子网级别的防火墙,默认网络 ACL 允许所有入站和出站流量。如果您没有对 ACL 进行过任何更改,请跳过这一步 。

  1. 打开 Amazon VPC 控制台。 

  2. 在导航窗格中,选择 Subnets,然后选择您的子网。

  3. 在 Description (描述) 选项卡上,找到 Network ACL (网络 ACL),然后选择其 ID (acl-xxxxxxxx)。

  4. 选择网络 ACL。对于 Inbound Rules,验证规则是否允许来自您的计算机的流量。如果不允许,请删除或修改阻止来自您的计算机的流量的规则。对于 Outbound Rules,验证规则是否允许到您的计算机的流量。如果不允许,请删除或修改阻止到您的计算机的流量的规则。

04

确认 ip 地址是否发生变化

如果您曾经对实例进行过关机,然后再次开机的操作(在控制台上表现为,曾经对实例进行过 stop 然后 start 的操作)。在没有绑定弹性 ip 的情况下,您的 ip 地址会发生变化,请在控制台上再次确认此时的 ip 地址。

以下为具体操作步骤:

  1. 在导航窗格中,选择 Instances。

  2. 查找要通过 SSH 连接的 EC2 实例。

  3. 在屏幕底部的 Description 选项卡中,查看 Public IP 与您正在使用的 ip 地址是否一致。如果 IP 地址已经发生变化,请使用新的 IP 地址。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第4张图片

05

 镜像的检查

请检查目前您使用的是否是官方的 AMI (镜像),AWS 的官方镜像一般在 Quick Start 当中。

如果 Quick Start 含有您想要的操作系统,请尽量选择 Quick Start 中的镜像。 

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第5张图片

对于有些不在 Quick Start 中的镜像,如 CentOS , 在Marketplace 当中是提供的,请选择 Marketplace 中发布的镜像,Marketplace 为厂家直供的 AMI。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第6张图片

除非您确定某个 AMI 的安全性,尽量不要使用  community 的镜像。community 属于个人发布的镜像, AWS 无法监管,可能有些社区版的镜像做了一些特殊的安全管理和控制,因此无法直接 SSH 上去。这种情况下,关掉现在的服务器,重新启动一台官方或者 Marketplace 上的镜像即可。

06

检查实例负载

检查实例上的负载,服务器可能已超过负载,导致 sshd 服务无法正常工作,无法接受新的 ssh 请求。可以通过观察  Cloudwatch 的指标确认此类问题。此时最简单的方式是可以尝试 通过 reboot 的方式是否能够解决。如不能,可以通过 system manager 的 session manager 工具尝试打开一个 session 进行相应的 command 操作 kill 掉一些不必要的资源。

07

其他原因

如果上述步骤您经过检查都没有问题,请检查以下原因:

  • 22 端口被屏蔽:如果您处于办公或者酒店等公共 WIFI 区域,请换个网络试试看,以核实是否该公共网络封禁了 22 端口。

  • 您电脑自身是否有防火墙屏蔽了 22 端口。

  • 如果所有网络设置都正确,您仍然无法登录到实例;或者您未改动过任何实例配置,实例负载也正常的情况下,突然无法 SSH 上去,如果您的实例是在海外的,有可能您的实例当前 IP 被墙。请您尝试用境外网络  (比如换一台海外的 EC2 用于 SSH,或者设置海外代理) 尝试一下是否能够 SSH 上去确认此问题。如果被墙,解决方法为 更换当前 IP 地址。

1.  可以通过 stop  实例,然后再次 start 实例 ,来更换 IP  地址。

2.  申请一个 EIP, 然后挂载 EIP 给 EC2。此时 IP 会换为  EIP 的地址。

02

权限相关

问题描述:

创建并启动了 EC2,但是无法使用 SSH 连接到实例,报错信息包括:  Host key not found in [directory]、Permission denied (publickey) 或 Authentication failed, permission denied。此问题通常因为 秘钥或者用户名错误 导致的权限问题,以下为具体排查方法。

故障排除:

01

检查秘钥对是否正确

每个 EC2 在启动的时候会有一个秘钥,此秘钥为第一次登录到 EC2 上的唯一方法,且只有启动实例前可以下载。请首先选中您的实例,在 Description 页面查看秘钥对的名称,确保您使用了正确的秘钥。

  • 如果此项为空,则您无法 ssh 到该实例,请关闭该实例,重新启动新实例,并且记得下载秘钥。如果您不清楚如何启动实例,请参考 启动虚拟机十分钟教程。

  • 如果您已经丢失了该秘钥对,请参考 丢失秘钥时如何连接到实例 。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第7张图片

02

用户名错误

如果您使用了官方镜像,正确的用户名如下所示:

  • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user 。

  • 对于 CentOS AMI,用户名称是 centos  。

  • 对于 Debian AMI,用户名称是 admin 或  root 。

  • 对于 Fedora AMI,用户名为 ec2-user 或 fedora 。

  • 对于 RHEL AMI,用户名称是 ec2-user 或 root 。

  • 对于 SUSE AMI,用户名称是 ec2-user 或 root。

  • 对于 Ubuntu AMI,用户名称是 ubuntu。

另外,如果  ec2-user 和  root  无法使用,请与 AMI 供应商核实。

如果是社区版本的 AMI, 无法保证其用户名,请与 AMI 制作者联系,或者转用官方 AMI。

03

 检查您的秘钥格式

通常,SSH 所需要的秘钥为 pem 格式的(从控制台下载的秘钥即为此格式)。

  • 如果您是用 第三方工具 ssh-keygen 产生的秘钥,默认情况下,它会生成 OpenSSH 的密钥格式。此时报错 Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----"。解决方法为 使用 ssh-keygen -m PEM 创建秘钥。

  • 如果您使用 windows 机器,利用 putty 登录,需要先做一个从 pem 格式到 ppk 格式的转换,具体操作,请参考 在windows 上如何利用 putty 登录 。

04

检查秘钥权限

如果遇到错误  bad permissions: ignore key: my_private_key.pem Permission denied (publickey). 这种情况是因为您的私钥文件权限太大,任何用户都可以对其进行读写操作,此时,为了保护您的私钥文件, SSH 会忽略您的密钥。 解决方法为,通过以下命令更改秘钥权限:chmod 400 my_private_key.pem

此时其他报错提醒语句可能包含:Permissions 0777 for 'my_private_key.pem' are too open. It is required

that your private key files are NOT accessible by others. This private key will be ignored.

05

known_host 相关错误

此情况通常见于切换了 EIP 等情况,比如 EIP 曾经挂载在机器 A 上,用了秘钥 A,此时切换了 EIP 到机器 B 上,对应的秘钥为秘钥 B,这时此 IP 的 known_host 对应 record  不匹配。解决方法为:打开 known_host 文件 (Linux /mac 地址: ~/.ssh/known_host ) 删除此 IP 的对应 record。

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第8张图片 mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第9张图片

更多文章相关阅读可访问以下网址

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第10张图片

《使用 SSH 连接到 Linux 实例》

http://dwz.date/aenD

《使用 PuTTY 从 Windows 连接到 Linux 实例》

http://dwz.date/aenH

《启动虚拟机十分钟教程》

http://dwz.date/aenP

《如何排查使用 SSH 连接我的 EC2 Linux 实例时遇到的问题?》

http://dwz.date/aepg

《排查实例的连接问题》

http://dwz.date/aept

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第11张图片

END

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第12张图片 144f3918ba96fe010e91e6d360f9ad39.png mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第13张图片

官宣官宣!!

AWS INNOVATE 2020 

正式开启报名啦

长按二维码即可报名

或马上点击“阅读原文”

报名注册与 AWS 一起开启你的

高阶Builder进击之旅

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第14张图片 97caf538939a4c26e790f12abb73ec5b.png

4月课程一览

时间

简介

4 月 14 日

使用 Kubeflow 在 Amazon EKS 上构建机器学习平台

4 月 17 日

如何通过模拟攻击,验证 WAF 深度防御策略

4 月 21 日

天涯若比邻 - AWS 全球数据库解决方案

点击查看课程详情

后台回复关键词【活动】

或点击菜单栏【AWS近期活动】

热门云计算活动任你挑!

mac删除ssh key_SSH 连接不上 EC2? 手把手教你排查_第15张图片

扫码关注

“ AWS云计算 ”

云上干货任你挑

71fdc11ebb305d9906be4b220efc5afe.gif

你可能感兴趣的:(mac删除ssh,key,宝塔能打开,ssh连接不上)