看下当前版本:ssh -V,系统自带的应该是5.3p1,openssl版本1.0.1e-fips
openssh会使用到openssl,因此先升级openssl,版本1.0.1u。
从官网下载1.0.1u版https://www.openssl.org/source/
使用tar解包
tar xfz openssl-1.0.1u.tar.gz
依次执行如下:
cd openssl-1.0.1u
./config shared zlib
make && make install
以上执行完毕,开始修改配置。
#重命名原来的openssl命令
mv /usr/bin/openssl /usr/bin/openssl.old
#重命名原来的openssl目录
mv /usr/include/openssl/ /usr/include/openssl.old
#将安装好的openssl 的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
#将安装好的openssl 的openssl目录软连到/usr/include/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
#修改系统自带的openssl库文件,如/usr/local/lib64/libssl.so(根据机器环境而定) 软链到升级后的libssl.so
ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so
注意:这里有可能出现一个问题,就是安装完毕之后发现 /usr/local/ssl/lib/下没有so文件。我的做法是用一台纯净的CentOS虚拟机编译升级openssl,然后将so文件复制过来。
#在/etc/ld.so.conf文件中写入openssl库文件的搜索路径
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#使修改后的/etc/ld.so.conf生效
ldconfig -v
测试
openssl version
下一步就是升级openssh了
备份配置文件:
/etc/sshd/下
/etc/pam.d下
在线升级过程:
yum install -y gcc openssl-devel pam-devel rpm-build pam-devel
tar zxvf openssh-8.2p1.tar.gz && cd openssh-8.2p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-pam --with-zlib --without-openssl-header-check
注意:这里特别提醒,要指定ssl路径。不指定,openssl将会使用旧版的openssl
检查是否执行成功
echo $? 返回0表示成功执行成功,返回1或其他数字表示执行失败
make && make install
需要关闭两个选项(已经淘汰):GSSAPIAuthentication,GSSAPICleanupCredentials
service sshd restart
service sshd status
再看版本:ssh -V