整个过程不需要卸载原先的 openssl 包和 openssh 的 rpm 包。
如果严格参照本文操作,保证你升级没问题,今天升级了三台
centos7.2 升级前后的对比
1、进入正文,建议先安装 telnet-server 以及 xinetd,万一失败无法登录,还可以用telnet登录
之前有写过这篇文章,这里就不详细说了,详情见链接:CentOS7 安装 telnet 服务
2、升级需要几个依赖包,是和编译相关的
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel
3、安装 pam 和 zlib 等(后面的升级操作可能没用到 pam,安装上也没啥影响,如果不想安装 pam 请自行测试)
yum install -y pam* zlib*
4、下载 openssh 和 openssl 的包
https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/
https://ftp.openssl.org/source/
安装openssl
5、开始安装openssl
# 解压openssl目录 tar xfz openssl-1.0.2u.tar.gz # 备份下面 2 个文件或目录(如果存在的话就执行) ll /usr/bin/openssl mv /usr/bin/openssl /usr/bin/openssl_backup ll /usr/include/openssl mv /usr/include/openssl /usr/include/openssl_backup # 进入openssl目录 cd /usr/local/download/openssl-1.0.2u/ # 配置、编译并安装 ./config shared && make && make install # 以上命令执行完毕,echo $? 查看下最后的 make install 是否有报错,0 表示没有问题 echo $?
# 下面 2 个文件或者目录做软链接 (刚才前面的步骤 mv 备份过原来的) ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl ln -s /usr/local/ssl/include/openssl /usr/include/openssl # 查看是否软链成功 ll /usr/bin/openssl ll /usr/include/openssl -ld # 命令行执行下面 2 个命令加载新配置 echo "/usr/local/ssl/lib" >> /etc/ld.so.conf /sbin/ldconfig # 查看openssl版本 openssl version
6、通过上面最后一个命令可以看到,openssl已经升级成功
安装openssh
7、安装openssh
# 解压 tar xfz openssh-8.1p1.tar.gz cd openssh-8.1p1 # 可能文件默认显示uid和gid数组都是1000,这里重新授权下。不授权可能也不影响安装(请自行测试) chown -R root.root /usr/local/openssh-8.1p1 # 先备份原来ssh的配置文件和目录 mv /etc/ssh/ /etc/ssh_backup# 配置、编译、安装 ./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include \ --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam && make && make install
# 我的需求是禁止root登录,所以配置了 PermitRootLogin no(自行去修改) grep "^PermitRootLogin" /etc/ssh/sshd_config # 关闭 UseDNS 加速 SSH 登录 (自行去修改) grep "UseDNS" /etc/ssh/sshd_config# 从原先的解压的包中拷贝一些文件到目标位置、赋予执行权限、添加服务、开机启动 cp -a contrib/redhat/sshd.init /etc/init.d/sshd cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam chmod +x /etc/init.d/sshd chkconfig --add sshd systemctl enable sshd
# 把原来的systemd管理的sshd文件删除或移动,否则会影响重启sshd服务 mv /usr/lib/systemd/system/sshd.service /data/ # 设置 sshd 服务开机启动 chkconfig sshd on
8、测试
# 启动sshd服务 /etc/init.d/sshd restart # 查看端口情况(可以看到22端口有占用) netstat -lntp # 关闭sshd服务看看22端口是否会释放 /etc/init.d/sshd stop # 可以看到22端口被释放(测试成功) netstat -lntp # 最后启动服务 /etc/init.d/sshd start
9、可以试着重启机器测试下登录 sshd 是否正常。测试没问题后也可以把 telnet 服务关闭了
# 关闭 telnet 服务
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket
# 也可以用 systemctl 来管理 sshd 服务
systemctl stop sshd
systemctl start sshd
systemctl restart sshd
共 0条评论
发表评论 请登录再评论