说明:升级ssh若有操作不当的容易引起不能远程登录主机,不能远程意味着要去机房操作,如果服务器机房在本地还好,如果在异地就吃席吧。建议先开启telnet服务,可以成功升级以后再关闭telnet服务。在线与离线并没有差异,区别就是在线下载安装包还是先下载安装包上传,一般离线部署居多。开启telnet参考:
https://blog.csdn.net/xhredeem/article/details/128247824?spm=1001.2014.3001.5501
openssl官网地址:https://www.openssl.org/
openssh官网:https://www.openssh.com/
查看当前操作系统的ssh版本及ssl版本(当前ssh版本为7.4,ssl版本为1.0)
[root@es2 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
[root@es2 ~]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
安装依赖包
[root@es2 ~]# yum -y install make gcc openssl-devel zlib zlib-devel
升级openssl
第一步:获取指定版本的openssl源码包,可以去官网找
[root@es2 ~]# wget https://www.openssl.org/source/openssl-3.1.0-alpha1.tar.gz --no-check-certificate
第二步:解压、配置,编译安装openssl
[root@es2 ~]# tar xf openssl-3.1.0-alpha1.tar.gz
[root@es2 ~]# cd openssl-3.1.0-alpha1/
[root@es2 openssl-3.1.0-alpha1]# ./config --help
有报错,不过无所谓,我会出手。
[root@es2 openssl-3.1.0-alpha1]# yum install -y perl-CPAN
[root@es2 openssl-3.1.0-alpha1]# perl -MCPAN -e shell
使用默认配置。都输入yes及回车,直到出现提示符cpan[1]>,然后进行下面操
cpan[1]> install IPC/Cmd.pm
cpan[2]> exit
[root@es2 openssl-3.1.0-alpha1]# ./config --prefix=/usr/local/openssl -d shared
[root@es2 openssl-3.1.0-alpha1]# make && make install
到此已经安装完毕,如果发现报错,执行下面
查看版本发现报错,根据报错信息,发现加载共享库的时候,无法读取库文件,配置共享库,再次查看openssl升级成功
[root@es2 openssl-3.1.0-alpha1]# echo /usr/local/openssl/lib64/ >>/etc/ld.so.conf
[root@es2 openssl-3.1.0-alpha1]# ldconfig
[root@es2 openssl-3.1.0-alpha1]# openssl version
OpenSSL 3.1.0-alpha1 1 Dec 2022 (Library: OpenSSL 3.1.0-alpha1 1 Dec 2022)
如果没有发现报错,显示还是原来版本,执行下面
升级openssh
第一步:获取指定版本的openssh源码包,可以去官网找
[root@es2~]#wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz
第二步:解压、配置、编译安装
[root@es2 ~]# tar xf openssh-9.1p1.tar.gz
[root@es2 ~]# cd openssh-9.1p1/
[root@es2 openssh-9.1p1]# ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl/
[root@es2 openssh-9.1p1]# make && make install
第三步:修改配置文件
[root@es2 ~]# vim /usr/local/openssh/etc/sshd_config
找到下面内容并修改为yes
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes
第四步:卸载旧版本的ssh并查看端口,此时端口22已经关闭,即关闭远程串口以后再也不能使用ssh远程
[root@es2 openssh-9.1p1]# rpm -e --nodeps `rpm -qa | grep openssh`
第五步:因为是源码安装,不能用systemctl 启动,自定义service文件
最后:重新加载配置、设置开机自启并启动,查看状态及端口
[root@es2 openssh-9.1p1]# systemctl daemon-reload
[root@es2 openssh-9.1p1]# systemctl enable sshd.service --now
[root@es2 openssh-9.1p1]# systemctl status sshd
[root@es2 openssh-9.1p1]# ss -ntulp
[root@es2 ~]# ssh -V
成功测试ssh启动并开机自启,端口22已经启动,同时查看版本升级成功,原有的旧版本ssh也卸载