背景
服务器降配,将实例规格从r5.4xlarge降为r5.2xlarge后服务器ssh无法登陆
分析
- 查看aws控制台,可以看到实例状态时启动的,并且状态检查已通过
- 内网ip和外网ip都是可以ping通的
- telnet ip port不通(之前就改变了ssh的配置,修改了ssh默认端口)
- 控制台的系统日志显示ssh服务是启动了的
解决方案
初步判断是ssh配置的问题
但是这个时候又没办法通过ssh登陆来修改ssh配置,其它登陆方式(控制台登陆、telnet登陆等)都没开通
通过救援实例登陆
具体思路就是重新在aws控制台启动一个新的实例,最小规格的就行。然后将原来无法启动服务器的硬盘挂载到新实例上当做附加卷,修改完附加卷上的sshd_config后再挂载回去。
下面是一些用到的命令:
# 创建挂载目录 sudo mkdir /mnt/rescue # 挂载到创建的目录 sudo mount -t xfs -o nouuid /dev/xvdf1 /mnt/rescue/ # 卸载目录 sudo umount /mnt/rescue/
注意硬盘在aws控制台挂载和卸载的时候都需要把实例给停止。然后挂载的目录也是有讲究的,附加卷的挂载路径是/dev/sd[f-p]。如果挂载了之后导致新的实例启动不了,可以换个挂载路径再挂载试试。
问题结论
之前的服务器默认ssh端口不是22,更换实例类型后ssh配置有初始化,无法登陆将ssh配置的22端口放开,密码登陆放开就可以了。
还有一个小问题,把sshd_config的22和修改的端口都放开,再把硬盘挂载回去,此时旧的实例登陆上去,再看ssh的配置除了22端口,另一个端口被注释了,可能是aws自己操作的。
参考文档
到此这篇关于aws服务器更换实例规格后ssh无法登陆的文章就介绍到这了,更多相关aws服务器ssh无法登陆内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!