SSH升级安装包下载地址:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
准备好安装包和升级需要使用到的脚本
ssh9.8_1.sh
#!/bin/bash
chmod +x ssh9.8_2.sh
install -v -m700 -d /var/lib/sshd
chown -v root:sys /var/lib/sshd
yum -y install gcc gcc-c++ autoconf automake update zlib zlib-devel openssl openssl-devel pcre pcre-devel
tar xf openssh-9.8p1.tar.gz && cd openssh-9.8p1/ && ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd
ssh9.8_2.sh
#!/bin/bash
cd openssh-9.8p1 && make && make install && ssh -V
ssh -V
echo "开始重启服务"
systemctl stop sshd
sleep 3
systemctl status sshd
systemctl start sshd
sleep 3
systemctl status sshd
ssh -V
在当前目录依次执行脚本即可安装完成
==============================其他异常情况说明如下: ====================================
异常一:
Starting sshd:/etc/ssh/sshd_config line 82: Unsupported option UsePAM
处理方式:
打开配置文件 删除对应行就可以了
异常二:
/etc/ssh/sshd_config line 128: Bad key types 'KexAlgorithms'.
处理方式
PubkeyAcceptedKeyTypes:表示指定公钥认证允许的密钥类型。进行如下配置修改
PubkeyAcceptedKeyTypes ssh-ed25519,rsa-sha2-256,rsa-sha2-512
异常三 error:0penSSLconfiqure:>=required (have"100020bf(0penSSL 1.0.2k-fips26 Jan 2017)"
在升级ssh的时候, 如果ssl版本太低,或者版本不匹配, 给ssl的版本升级一下就可以了, 下面直接开干
查看openssl的版本和位置
openssl version
whereis openssl
备份openssl文件
mv /usr/bin/openssl /usr/bin/openssl_old
mv /usr/include/openssl /usr/include/openssl_old
mv /usr/local/openssl/ /usr/local/openssl_old
下载openssl,官网地址:
https://www.openssl.org/source/openssl-1.1.1.tar.gz
- 解压openssl
tar -zxvf openssl-1.1.1.tar.gz
- 切换到解压好的openssl目录
cd openssl-1.1.1
- 配置openssl安装目录
./config --prefix=/usr/local/openssl
- 编译&&安装
make && make install
- 创建软链接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
- 添加动态链接库数据
echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
检查一下,已经在/etc/ld.so.conf中是否存在。
-
更新动态链接库:ldconfig -v
-
验证openssl
openssl version -a
可以看到,我们使用ssh -V一样可以看到关联的ssl版本是已经更新之后的
然后切换回ssh9.8的目录下, 再重新执行脚本./ssh9.8_1.sh,又出现异常: OpenSSL libary not found
给./configure的启动配置文件添加参数:–with-ssl-dir=/usr/local/openssl 指定OpenSSL的位置就可以了
cd到目录 /root/ssh9.8/openssh-9.8p1 ,重新执行
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/ --with-ssl-dir=/usr/local/openssl
接着再执行脚本
./ssh9.8_2.sh
重启服务,查看状态
systemctl restart sshd
systemctl status sshd
最后版本升级成功
ssh -V
如果对你有帮助, 请作者抽只烟吧!!!