CentOS7系统下误修改/etc/profile文件后导致SSH无法登录的解决办法
故障复现
1、/etc/profile.d目录下误操作
cd /etc/profile.d/ 目录下误操作,上传了一个sh脚本,刚好个脚本直接导致SSH无法登录
其他机器尝试SSH登录也是一样
2、并控制台输入正确密码会自动退出,导致无法登录
3、想尝试SSH过去覆盖该文件的方法也不可行
echo "export TMOUT=600 " > init_centos7_v8.sh scp ./init_centos7_v8.sh root@192.168.31.127:/etc/profile.d/ ssh root@192.168.31.127
4、由于是VMware虚拟机,最终不得不重启进解决
VMware虚拟机重启进维护模式删除该文件解决
具体步骤如下
1、重启服务器,在选择内核界面使用上下箭头移动
2、选择内核并按“e”
3、找到下面这行
这里要删除掉rhgb quiet 以及ro 改为
rw init=/bin/bash
然后Ctrl+X进入维护模式
4、bash命令下删除/etc/profile.d/该文件
rm -rf /etc/profile.d/init_centos7_v8.sh exec /sbin/init
退出维护模式
5、这时就可以正常登录SSH和控制台了
阿里云主机场景下如何解决
控制台输入密码会自动退出无法登录
如果是阿里云主机呢 可以借助阿里云助手来解决,且不用重启服务器 或者阿里云CLI工具(实质是借助云助手) 具体方法如下
1、云控制台中云助手下发命令解决
2、辅助Linux机器安装阿里云CLI工具执行CLI命令解决
在Linux上安装阿里云CLI参考如下链接
https://help.aliyun.com/document_detail/121541.html
下载链接
https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz?spm=a2c4g.11186623.0.0.1e52714aaP7ZjP&file=aliyun-cli-linux-latest-amd64.tgz
tar -zxvf aliyun-cli-linux-latest-amd64.tgz mv aliyun /usr/local/bin
然后aliyun configure
aliyun configure 配置AccessKey
复制命令执行
aliyun ecs RunCommand --RegionId 'cn-hangzhou' --Username 'root' --RepeatMode 'Once' --CommandContent 'ZWNobyA+IC9ldGMvcHJvZmlsZS5kL2luaXRfY2VudG9zN192OC5zaA==' --Name 'cmd_2021-12-16_20-11-46' --Type 'RunShellScript' --ContentEncoding 'Base64' --InstanceId.1 'i-bpXXXXXXXXXXXXXX'
接下来验证效果, 可以看到下发命令后就可以正常登录了
总结:线上操作命令务必慎重,小心再小心,无法SSH直接导致无法进行维护,若没有安装阿里云助手,那就必须重启服务器才能解决,对于不能停机重启的业务系统服务器就非常尴尬了,所以对生产环境要有敬畏之心!!!谨记!