因为误删etc目录下的文件导致ssh无法连接,连接即断开。最后综合了各方渠道,实现了在不转移数据的前提下解决该问题。本来一同事给的建议是重建一个主机,然后把原主机的硬盘备份并挂载上去,这样把数据拷贝出来,同时更改相关配置解析等等。当忙了一天到快下班的时候发现可能是具体的文件丢失引起的,于是就尝试找回误删的文件并恢复到原硬盘,然后测试OK。
所以具体的表现为服务器上的各个服务运行正常,网站正常访问,但就是ssh连接不上。初始推断为误删文件导致的。
操作步骤可以总结为一下:
1、停止正在运行的主机,并分离硬盘;
2、挂载硬盘到能够连接上的主机,并补充丢失的文件;
3、卸载硬盘并重新挂回原主机,启动主机,尝试连接;
有一点需要特别注意,就是在卸载硬盘的时候需要记一下硬盘的盘符,当挂载回去的时候需要对应盘符才能启动。截图如下:
文字描述如下:
a、使用 lsblk 命令确定卷是否已分区。
lsblk
b、创建临时目录以装载卷
sudo mkdir /mnt/tempvol
c、使用之前确定的卷名称或设备名称在临时装载点装载卷 (或分区)。所需命令取决于操作系统的文件系统。
Amazon Linux、Ubuntu 和 Debian
[ec2-user ~]$ sudo mount /dev/xvdf1 /mnt/tempvol
Amazon Linux 2、CentOS、SLES 12 和 RHEL 7.x
[ec2-user ~]$ sudo mount -o nouuid /dev/xvdf1 /mnt/tempvol
sudo mount /dev/xvdf1 /mnt/tempvol
d、在临时实例中,卸载已附加的卷,以将其重新附加到原始实例。
sudo umount /mnt/tempvol