大约3分钟读完
1、前因
某服务器管理员升级openssh过程中导致无法ssh连接上服务器。这下子好了不能远程连接服务器,该管理员问我这下子怎么办?那只能找到运维大哥在VMware管理平台上直接连接,在终端下进行恢复的操作(该管理员操作前未联系运维大哥进行快照,所以出了问题又不能用快照恢复,只能强行怼好,别无他法)。
2、入坑
这时候该管理员找到我,问我这个要怎么解决,按照常规思路,根据执行命令显示相关错误信息进行百度谷歌,这个时候我就开始陷入一个大坑了,我还没发觉到!可是网上的答案都是要手动编译安装相关包。这个就花时间了,处理起各种依赖会让人头大!这是想到了用yum去安装openssh,然而yum 也报错了,心想这是干了啥,为啥yum命令也用不了,根据相关错误信息百度得知,python模块的问题,为啥会跟python扯上关系???好吧好吧,那就去配置下python版本呗,根据教程配置好,发现还是出现这个错误提示!于是想着是不是yum的原因,那就去安装个yum呗,查看安装的yum,rpm -qa | grep yum
,卸载yum,rpm -e --nodeps yum
,
2.1、 安装yum
下载安装依赖包 python python-iniparse
下载地址:http://mirrors.163.com/centos/7/os/x86_64/Packages/
找到对应的包:python python-iniparse
下载好后使用命令进行安装(这里也是个坑,wget命令也无法使用了,只能拜托运维大哥弄个文件共享,然后去访问共享复制到该服务器上)
rpm -ivh python-2.7.5-58.el7.x86_64.rpm python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh --nodeps --force yum-*
安装好了应该没问题了吧!啊哦,现实很残酷还是同样的出错!这个时候感觉思路肯定就是有问题了,需要静静,就说这个问题先放一放,先去忙其他事,后续继续解决这个问题!
2.2、 峰回路转
几天后,脑海里又浮现出这个问题,想着问下该管理员情况怎么样了,得到回复还是没有解决这个问题,她说这几天这个问题一直没有处理好,导致心情很不爽,做其他事都不开心了,这个时候不知道怎么搞的,感觉脑回路特顺溜,就问她,你到底是干了啥,你把你执行的相关命令整理成一个文档发给我,我研究研究!果然一看,问题有点大!
天呐!,直接删除了openssh跟少敲了一个字母,不但把openssh给删除了,还是把openssl也给删了!这下子之前的一大堆疑问全部都清晰了!原来删除了openssl会导致Linux系统很多命令都不能使用,这下子就很清晰了, 去安装个openssl应该就能解决了。为了证明我的想法,于是用虚拟机搭建了一个环境开始折腾。
3、搭建一个本地环境复现(这里不讨论安装centos过程)
1057884-544a51f453e6e786.png
4、找出原因
复现情况完全一致,得出原因 是由于敲错命令删除了openssl,导致了此次事件发生
rpm -e --nodeps `rpm -qa|grep openss`
原来openssl对linux系统这么重要,删了OpenSSL会使很多系统的命令都不能用,例如wget、ping、yum等
5、安装GCC各种依赖包
这里也是有个坑,之前准备编译安装openssl的,但是没有安装GCC,离线安装gcc需要安装一些依赖包
通过百度得知安装gcc必须这三个依赖包gmp、mpfr、mpc(从上面网易这个镜像地址下载)
安装 gmp
安装mpfr
提示需要安装mpfr,那就下复制一个过来装呗
安装mpc
提示需要安装libmpc,那就装呗
终于搞定了,准备安装gcc
安装gcc
额,提示缺少cpp跟 glibc-headers,那就装呗
再次安装gcc 使用命令rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm
还缺少这个两个依赖,那就继续安装呗
rpm -ivh cpp-4.8.5-16.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-196.el7.x86_64.rpm
1057884-1bc1d2939cf967ad.png
妈也,终于安装成功了gcc。
终于装好了GCC!
然后就在这个时候,脑子突然就觉得自己之前瓦特了,openssl应该也能通过RPM包安装啊,为什么要用编译安装嘞???
这里就当熟悉下离线安装Linux的包了(强行给自己下台阶)
6、安装openssl(其实只要安装这个两个包就能解决该问题)
1057884-de5e3becaa51187f.png
提示缺少openssl-libs
安装openssl-libs
OK 安装成功!
这个时候yum也能用了,那就用yum来安装openssh咯!
7、安装openssh
yum update
yum install openssh-server
提示是安装好了openssh服务端,但是ssh服务起不来,根据报错提示,提示啥key的,想着应该是之前ssh目录里留下了一些文件,cd /etc/ssh目录下果然有一堆其他乱七八糟的文件,那我就把这些文件都保存到其他的目录下 然后卸载了openssh ,重新安装下,果然 成功启动ssh,然后使用ssh 客户端去连接该服务器,终于可以连接上了,这个时候,这妹子终于开心的笑了!
8、怀疑人生
了解全面,一定要多方面的去了解一件事,这样子才能准确找到问题所在。
做的更多,做的比安排的任务更多,这样子收获才会更多。
做的更好,方法那么多,总能找到最好最快的方法。(这里就装了逼,这妹子折腾了好几天,我就几条命令就解决了问题,然而装逼的背后是不断的尝试)。
评论 (0)