Centos系统下openssh升级到10.0p2
升级与操作有风险,请谨慎操作!!!
本公众号的内容只在测试环境上验证,不对您的任何操作行为负责。
还有学员不知道如何在服务器版系统上源码编译升级openssh,怎么办?信创课堂第12期开课,本文将在统Centos7.x服务器操作演示,其他版本类似。
OpenSSH升级过程会断掉ssh连接,请谨慎操作!!!
操作之前,请提前安装telnet,使用telnet连接到服务器,此处略!!
1、查看当前系统OpenSSH版本和OpenSSL版本,并将Zlib、openssl-1.1.1f、 openssh-10.0p2源码包上传到服务器。
现提供该测试版本,若需要最新版本,请到官方网站下载。链接: https://pan.baidu.com/s/1zYtmELch53ZWDe-vM3_RDw?pwd=bafk 提取码: bafk)
2、编译安装zlib工具,编译安装命令如下
[root@localhost ~]# tar -zxvf zlib.tar.gz
[root@localhost ~]# cd zlib-1.3.1/
[root@localhost ~]# ./configure --prefix=/usr/local/zlib
[root@localhost ~]# make && make install
安装完成后,没有报错,表明已经安装成功
3、编译安装Openssl查看系统当前版本和内核信息
[root@localhost ~]# tar -zxvf openssl-1.1.1f.tar.gz
[root@localhost ~]# cd ../openssl-1.1.1f/
[root@localhost ~]# ./config --prefix=/usr/local/ssl -d shared
[root@localhost ~]# make && make install
查看是否安装成功,没有报错表明安装成功
4、更新一下动态链接库,将ssl库写入/etc/ld.so.conf文件,执行ldconfig -v
[root@localhost ~]# echo '/usr/local/ssl/lib' >> /etc/ld.so.conf
5、编译安装Openssh10.0p2
[root@localhost ~]# tar -zxvf openssh-10.0p2.tar.gz
[root@localhost ~]#cd ../openssh-10.0p1/
[root@localhost ~]# ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl --without-openssl-header-check
[root@localhost ~]# make && make install
参数说明:
--prefix=/usr/local/openssh ##prefix选项是配置安装的路径,如果不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share
--with-zlib=/usr/local/zlib ## 使用zlib库
--with-ssl-dir=/usr/local/ssl ##使用ssl
--without-openssl-header-check ##不使用openssl头文件,若系统存在同版本openssl头文件,可以不用加这个参数,若编译的openssl版本和系统的openssl版本不一样,则需要加这个参数
没有报错,表示configure配置校验检查正常,就可以直接安装了
执行make && make install 安装,没有报错,表明安装成功
6、卸载原有的openssh包,加参数--nodeps表示强制卸载,查看是否已经卸载完毕
[root@localhost ~]# rpm -e openssh openssh-server openssh-clients openssh-help --nodeps
7、配置并重启ssh
[root@localhost ~]# cp /usr/local/openssh/bin/ssh* /usr/bin/ ##拷贝可执行文件
[root@localhost ~]# cp contrib/redhat/sshd.init /etc/init.d/sshd ##拷贝自启动脚本
[root@localhost ~]# cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd ##系统管理程序与bin目录一样
[root@localhost ~]# systemctl restart sshd
[root@localhost ~]# chkconfig --add sshd ## 将该服务到chkconfig数据库,并添加到启动项中
[root@localhost ~]# systemctl restart sshd ##重启sshd服务
[root@localhost ~]# ssh -V ## 查看当前ssh版本
8、重启服务器,再次验证是否可以远程ssh登录服务器
注意:升级完openssh后,配置文件是/usr/local/openssh/etc/sshd_config,而不是/etc/ssh/sshd_config,若要修改sshd配置,需要对/usr/local/openssh/etc/sshd_config文件修改,重启服务,才可以生效。