Openssh7.4p1更换为8.2
(过程是用CRT自动记录的,原始记录请到网盘下载链接: https://pan.baidu.com/s/1ons6A_IynGp29eXtjSvZTw 提取码: 9ihe请到这里下载远程到服务器的整个过程记录)
写在前面:  如果编译升级失败,就yum install -y openssh*安装回7.4p1

Openssh下载地址https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ 找自己需要的版本

本文参考https://www.jianshu.com/p/e75300b7e8be进行。仅记录本人本次过程记录,如果不行,请勿喷(因为是事后整理的)

环境声明:

我当前系统版本
openssh7更换升级位8.2版本过程

首先更新yum源:

首先备份(注意当前登录用户权限,我是切换为了root)

/etc/yum.repos.d/CentOS-Base.repo

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载源,到如下链接下载自己当前系统的,下载到/etc/yum.repos.d/下面

http://mirrors.aliyun.com/repo/ 我找的阿里的,其他的请自行百度下载

openssh7更换升级位8.2版本过程

执行yum clean all清理缓存

执行yum makecache

安装运行库(具体视自己情况决定做不做):

yum install gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel

上面yum里的openssl会把openssl安装到如下版本
openssh7更换升级位8.2版本过程

如果你是ssh到机器进行操作的,无法本地直接操作,那么需要安装telnet,以防止ssh卸载时候不能远程到服务器

yum install  telnet-server

yum install xinetd

使用telnet看能否远程到服务器,如果不能就 vi /etc/securetty 在尾部增加pts/0 pts/1 pts/2

配置telnet开机启动

systemctl enable xinetd

systemctl enable telnet.socket

启动telnet

systemctl start telnet.socket

systemctl start xinetd

用telnet连接到服务器(注意切换为root)

停止ssh服务 卸载ssh(rpm -e --nodeps $(rpm -qa | grep openssh)
openssh7更换升级位8.2版本过程_第1张图片

注意,我30号参考百度的文档(天下文章一大抄,千篇一律)没有升级成功,最后使用yum install -y openssh*安装回7.4p1

查找sshd.pid find / -name ’sshd.pid’ 记录下该文件位置,注意英文的’

openssh7更换升级位8.2版本过程

删除或者备份/etc/ssh/下的文件,注意如果备份的话该路径下不要有原来文件名

下载openssh8.2,我是下载到了home下的当前登录的用户文件夹,下面截图是解压后的截图(注意切换为root)

’’
openssh7更换升级位8.2版本过程

下载wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz

解压 tar –zxvf openssh-8.2p1.tar.gz

有的文章说要chown -R root.root ./ openssh-8.2p1我的没有做这个。

进入解压解压文件夹下 cd openssh-8.2p1

编译安装

./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-ssl-dir=/usr/local/ssl --with-md5-passwords --mandir=/usr/share/man/

make && make install

参数说明

--prefix 安装目录  --sysconfdir 配置文件目录 --with-ssl-dir 指定 OpenSSL 的安装目录
--with-privsep-path 非特权用户的chroot目录 --with-privsep-user=sshd 指定非特权用户为sshd  --with-zlib 指定zlib库的安装目录 --with-md5-passwords 支持读取经过MD5加密的口令 --with-ssl-engine 启用OpenSSL的ENGINE支持

 

复制启动文件到/etc/init.d/sshd

cp -a /home/zabbix/openssh-8.2p1/contrib/redhat/sshd.init /etc/init.d/sshd

openssh7更换升级位8.2版本过程

然后修改启动文件,vi /etc/init.d/sshd 找到PID_FILE注释掉,改为如下截图(就是开始查找sshd.pid的路径)

openssh7更换升级位8.2版本过程_第2张图片

设置开机启动

openssh7更换升级位8.2版本过程

参照https://www.jianshu.com/p/e75300b7e8be该文档,引用如下部分,编辑启动服务如下截图

openssh7更换升级位8.2版本过程_第3张图片

而实际上通过find / -name 'sshd.service',找到sshd.service的位置如下截图,
openssh7更换升级位8.2版本过程_第4张图片
然后在/usr/lib/systemd/system/下搜索看到如下截图文件(没有sshd.service,而有的是sssd开头的文件)
openssh7更换升级位8.2版本过程

我们查看sssd.service

这部分的修改有点稀里糊涂,大家不要参考了,可以参照https://www.jianshu.com/p/e75300b7e8be该文档。

做完后,ssh版本如下图

openssh7更换升级位8.2版本过程

openssh7更换升级位8.2版本过程_第5张图片

CRT连接的时候报错了,处理过程是,删除原来的连接,新建连接,填入IP地址等然后回车登录提示报错,在连接上右击选择最后一个 Properties ----Connection----SSH2-----Authentication里有个Password,选中Password 点击右边的Properties按钮,在跳出来的窗口输入两次密码确认。如果登录还报错直接点Skip即可,如下图

openssh7更换升级位8.2版本过程_第6张图片

openssh7更换升级位8.2版本过程

我这点击Skip后就直接进去了。

最后附上本次的原始操作记录链接:链接: https://pan.baidu.com/s/1ons6A_IynGp29eXtjSvZTw 提取码: 9ihe请到这里下载远程到服务器的整个过程记录,使用的crt自动记录生成的,每个步骤都记录。