1. 问题的产生
前一阵子,用ssh 连接服务器突然出现了问题,连不上还报错,但是阿里云官方提供的连接工具是可以连上的。在网上查找了一下解决方案得知可能是因为少了一个叫做sshd 的用户,据说这个用户的作用是用来进行权限分割的。于是我就去服务器的/etc/passwd 里面查看是否存在这个用户,看了一下,果然没有,但是存在另一个用户叫做_sshd。抱着试一试的态度将_sshd 改名为sshd 果然解决了ssh 无法连接的问题。但是,一切从此变得不正常起来……先是nginx 出了问题,无法接收到客户端的请求,之后向新的代码托管平台添加服务器公钥然后在服务器上进行git clone 操作时也出了问题。
为了解决莫名出现的一些bug 重启了一下服务器,结果重启之后发现所有的工具都连不上服务器了,包括用自己电脑的ssh 连接和阿里云自带的连接工具,而且没有任何错误提示!无奈之下只好求助于阿里云售后技术支持。
2. 求助于阿里云
按网上的说法进行了一系列的错误排查,填写问题描述,提交工单后很快就得到了反馈。跟阿里的技术人员沟通了几轮,保存了一下服务器的快照就让他放手去整。他整了一会告诉我说他们将服务器挂载到livecd 上以后发现/etc/passwd 和另一个文件中的内容被改的很乱,跟正常系统完全不一样(可是我只改了里面的一个用户名而已啊?!这难道就叫牵一发而动全身??),建议我重装系统。我问将正常系统的这两个文件拷贝过来直接替换掉我服务器上有问题的文件是否可行,他又捣鼓了一会告诉我替换了以后还是不行,于是我只能重装了。这个故事告诉我们系统配置文件一定不能随!便!改!!即使要改也要提前备份一下,以免改过之后出问题!!!
3. 重装吧
穷途末路,只能重装。以下为重装过程记录:
3.1 重新初始化磁盘
在重新初始化之前,记得先保存服务器快照,有助于之后进行数据恢复,这个过程可能要持续一个半到两个小时。
之后将服务器停止,这个过程可能要持续几分钟。