补丁升级 centos7.4升级openssh7.4至7.9
安装centos7.4
下载地址:https://man.linuxde.net/download/uploads/soft/180313/CentOS-7-x86_64-DVD-1708.torrent
安装结束。
编译openssh rpm包
查看操作系统版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
查看openssh的版本
[root@localhost ~]# rpm -qa | grep -E "openssh"
openssh-server-7.4p1-11.el7.x86_64
openssh-7.4p1-11.el7.x86_64
openssh-clients-7.4p1-11.el7.x86_64
下载编译包进行编译打包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
# 解压缩
tar xzf openssh-7.9p1.tar.gz
安装rpmbuild和编译环境,需root身份。
# yum install automake gcc openssl-devel pam-devel
# yum install rpm-build
# yum install rpmdevtools
构造rpmbuild工作环境
rpmdev-setuptree
在主目录下生成rpmbuild的工作目录。
BUILD:编译rpm包的临时目录BUILDROOT:编译后生成的软件临时安装目录RPMS:最终生成的可安装rpm包的所在目录SOURCES:所有源代码和补丁文件的存放目录SPECS:存放SPEC文件的目录SRPMS:软件最终的rpm源码格式存放路径
复制源代码文件
cp /homg/liangcheng/openssh-7.9p1/contrib/redhat/openssh.spec /homg/liangcheng/rpmbuild/SPECS/
cp /homg/liangcheng/openssh-7.7p1.tar.gz /homg/liangcheng/rpmbuild/SOURCES/
修改脚本文件openssh.spec
vim /homg/liangcheng/rpmbuild/SPECS/openssh.spec
注意:修改如下两行,把默认的0改为1:
rpm打包
cd /homg/liangcheng/rpmbuild/SPECS/
rpmbuild -bb openssh.spec
在rpmbuild/RPMS/x86_64目录下会生成rpm文件。
编译出错
# 编译过程遇到的错误:
错误:
构建依赖失败: openssl-devel < 1.1 被 openssh-7.9p1-1.el7.x86_64 需要
解决:
[root@localhost SPECS]# vim openssh.spec
注释掉 BuildRequires: openssl-devel < 1.1 这一行
telnet安装
在生产环境下,为防止ssh安装失败登录不了,可先安装telnet服务,如果直接连接到linux服务器,那么就可以省略这一步。
上传telnet安装文件
在http://mirrors.163.com/centos/7/os/x8664/Packages/ 下载telnet三个rpm包
telnet-0.17-64.el7.x8664.rpmtelnet-server-0.17-64.el7.x8664.rpmxinetd-2.3.15-15.el7.x8664.rpm
文件传到root目录下的telnet文件夹下开始安装进程;
安装命令
# rpm -Uvh telnet-0.17-64.el7.x86_64.rpm telnet-server-0.17-64.el7.x86_64.rpm xinetd-2.3.15-15.el7.x86_64.rpm
配置telnet服务
vim /etc/securetty
增加一下两行内容:
pts/0
pts/1
防火墙配置telnet端口: 注意:如果服务器防火墙未开启,请不要开启,不影响telnet访问。
# firewall-cmd --permanent --add-port=23/tcp
# firewall-cmd --reload
# firewall-cmd --list-all
启动telnet服务
# systemctl enable telnet.socket
# systemctl start telnet.socket
# systemctl enable xinetd
# systemctl start xinetd
登录测试telnet服务是否正常开启
确认是否可以登陆服务器
# telnet 192.168.1.92 23
升级ssh
所有工作完成之后,可以开始升级ssh了。
备份配置文件
cp /etc/ssh/ssh_config /etc/ssh/ssh_config.before
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.before
执行 find / -name "sshd" 下有没有这个文件 有的话根据实际所在路径执行如下备份操作
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
安装rpm ssh
备份完成,开始安装.
sudo rpm -Uvh openssh-7.9p1-1.el7.centos.x86_64.rpm openssh-clients-7.9p1-1.el7.centos.x86_64.rpm openssh-server-7.9p1-1.el7.centos.x86_64.rpm
确认ssh版本
ssh -V
配置远程登录SSH
# vim /etc/ssh/sshd_config
修改配置文件中PermitRootLogin参数为yes
修改相关文件权限:
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
确认/etc/sysconfig/selinux文件中SELINUX参数为disabled,如果修改了文件内容,需要重启服务器。
重启服务器并重启sshd服务
# reboot
# systemctl restart sshd
退出,验证ssh版本
ssh重新连接服务器
# ssh -V
参考文档
https://johng.cn/install-openssh7-9p1-in-centos7/
https://app.joinbright.com:8443/tech/opensshjds/openssh79.html
https://liujia.anqun.org/index.php/archives/1318/