openssh 和 openssl 升级
一、 安装前准备
1.1 查看当前openssh版本
[root@centos7 ~]# ssh -V |
1.2 查看当前openssl版本
[root@centos7 ~]# |
1.3 安装依赖
yum install perl perl-Test-Harness perl-Test-Simple
yum groupinstall Development Tools
1.4 安装 zlib
1.4.1 下载
wget http://www.zlib.net/zlib-1.3.tar.gz
1.4.2 解压
tar -xzvf zlib-1.3.tar.gz
1.4.3编译&安装:
cd zlib-1.3 |
二、 安装OpenSSL(非必须)
2.1 源码编译安装
官网下载地址: https://www.openssl.org/source/
2.1.1 下载:
wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
2.1.2 解压
tar -xzvf openssl-1.1.1w.tar.gz
2.1.3 编译&安装:
cd openssl-1.1.1w |
2.2 替换openssl为新版本
2.2.1 替换 openssl 二进制文件
mv /usr/bin/openssl{,.back}
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
2.2.2 openssl 相关库
mv /usr/include/openssl{,.back}
ln -s /usr/local/openssl/include/openssl/ /usr/include/
2.2.3 共享库路径加入系统
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
2.2.4 验证
ldconfig -v | grep openssl
三、 安装OpenSSH
3.1 备份相关文件
mv /etc/ssh{,.back}
mv /etc/pam.d/sshd{,.back}
3.2 下载
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
3.3 解压
tar -xzvf openssh-9.5p1.tar.gz
3.4 编译&安装
cd openssh-9.5p1 |
3.5 注意事项
确保使用了openssl-1.1.1
./config的结果
make tests 这里时间特别较长
保证.key文件的权限为 0600
注意: 安装完不可直接systemctl去重启sshd, 可能会造成服务器无法连接
请在有ssh之外远程到服务器上的权限再去升级ssh, 避免升级过程中导致ssh无法连接
3.6 修改sshd配置文件
其实直接恢复原来的sshd_conf文件即可. 保险起见使用如下配置
编辑sshd配置文件: vim /etc/ssh/sshd_config
添加: PermitRootLogin yes
3.7 复制sshd的pam配置文件
cp openssh-9.5p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
3.8 使用systemctl管理sshd
配置启动脚本cp openssh-9.5p1/contrib/redhat/sshd.init /etc/init.d/sshd
添加sshd的service配置文件vim /usr/lib/systemd/system/sshd.service
#vim /usr/lib/systemd/system/sshd.service |
3.9 替换为新的 sshd
mv /usr/bin/ssh{,.back}
mv /usr/sbin/sshd{,.back}
ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
重载systemctlsystemctl daemon-reload
重启sshdsystemctl restart sshd
3.10 验证
四、 相关问题
4.1 error: *** working libcrypto not found
解决: yum install openssl-devel
4.2 error: PAM headers not found
解决: yum install pam-devel
4.3 升级 openssl3.0.12 Can’t locate IPC/Cmd.pm
解决: yum install perl-IPC-Cmd