更新ssh从入坑到怀疑人生

更新ssh从入坑到怀疑人生

OneOne
2018-04-18 / 0 评论 / 2,856 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2020年04月22日,已超过1735天没有更新,若内容或图片失效,请留言反馈。
大约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

1057884-9d3c6d6683898d4b.png

下载好后使用命令进行安装(这里也是个坑,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、 峰回路转

几天后,脑海里又浮现出这个问题,想着问下该管理员情况怎么样了,得到回复还是没有解决这个问题,她说这几天这个问题一直没有处理好,导致心情很不爽,做其他事都不开心了,这个时候不知道怎么搞的,感觉脑回路特顺溜,就问她,你到底是干了啥,你把你执行的相关命令整理成一个文档发给我,我研究研究!果然一看,问题有点大!

1057884-527fbc584cfd0526.png

天呐!,直接删除了openssh跟少敲了一个字母,不但把openssh给删除了,还是把openssl也给删了!这下子之前的一大堆疑问全部都清晰了!原来删除了openssl会导致Linux系统很多命令都不能使用,这下子就很清晰了, 去安装个openssl应该就能解决了。为了证明我的想法,于是用虚拟机搭建了一个环境开始折腾。

3、搭建一个本地环境复现(这里不讨论安装centos过程)

1057884-f693da0020fe03f6.png
1057884-a450bc57d848bf59.png
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

1057884-af59d34da7615d64.png

安装mpfr

1057884-fd62ae9d4d6bedb2.png

提示需要安装mpfr,那就下复制一个过来装呗

1057884-8b0eec91af609b58.png

安装mpc

1057884-ffdb136de66374a4.png

提示需要安装libmpc,那就装呗

1057884-e18a547628ec9d5f.png

终于搞定了,准备安装gcc

安装gcc

1057884-34e709f727d60079.png

额,提示缺少cpp跟 glibc-headers,那就装呗
1057884-4898016ff1633e45.png
1057884-1cba63ef4d5efa67.png

1057884-f598dcae481a8cec.png

再次安装gcc 使用命令
rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm

1057884-743c841c64b277de.png

还缺少这个两个依赖,那就继续安装呗

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。

1057884-21397ca805cc2611.png

终于装好了GCC!

然后就在这个时候,脑子突然就觉得自己之前瓦特了,openssl应该也能通过RPM包安装啊,为什么要用编译安装嘞???

这里就当熟悉下离线安装Linux的包了(强行给自己下台阶)

6、安装openssl(其实只要安装这个两个包就能解决该问题)

1057884-de5e3becaa51187f.png

提示缺少openssl-libs

安装openssl-libs
1057884-03ac8ac003b27106.png
1057884-1bcf5b189eb9fce9.png

OK 安装成功!

这个时候yum也能用了,那就用yum来安装openssh咯!

7、安装openssh

yum update

yum install openssh-server

提示是安装好了openssh服务端,但是ssh服务起不来,根据报错提示,提示啥key的,想着应该是之前ssh目录里留下了一些文件,cd /etc/ssh目录下果然有一堆其他乱七八糟的文件,那我就把这些文件都保存到其他的目录下 然后卸载了openssh ,重新安装下,果然 成功启动ssh,然后使用ssh 客户端去连接该服务器,终于可以连接上了,这个时候,这妹子终于开心的笑了!

8、怀疑人生

了解全面,一定要多方面的去了解一件事,这样子才能准确找到问题所在。

做的更多,做的比安排的任务更多,这样子收获才会更多。

做的更好,方法那么多,总能找到最好最快的方法。(这里就装了逼,这妹子折腾了好几天,我就几条命令就解决了问题,然而装逼的背后是不断的尝试)。

0

评论 (0)

取消