CentOS 7 最新版(CentOS 7.9 2009) 默认 OpenSSH 版本为 7.4p1,OpenSSH 9.3p2 之前版本存在安全漏洞,需升级 OpenSSH 到安全版本避免漏洞。
本文将介绍 OpenSSH 升级到 9.7p1 版本,依赖的 OpenSSL 版本升级到 1.1.1 版本。
1 下载 OpenSSH 9.7p1、OpenSSL 1.1.1安装包;
网盘地址:https://www.123pan.com/s/hXKSVv-l9YN3.html
2 操作注意
操作前在 SSH 客户端打开两个登录窗口, top 挂前端,以免 SSH 卸载后误操作关闭操作窗口,导致无法登录。
3 升级 OpenSSL
bash
yum install -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel wget vim unzip lrzsz
yum install -y pam* zlib*
setenforce 0
#创建目录
mkdir -p /app/src
#编译安装OpenSSL
cd /app/src
#上传openssl源码包
rz
tar xf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k/
mkdir /usr/local/openssl
./config --prefix=/usr/local/openssl
make && make install
#配置OpenSSL
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
unlink /usr/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so /usr/lib64/libssl.so
echo '/usr/local/openssl/lib' >> /etc/ld.so.conf
ldconfig -v
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
#查看 openssl 版本
openssl version
ping www.baidu.com
4 升级 OpenSSH
bash
#安装依赖
yum install -y wget gcc pam-devel libselinux-devel zlib-devel openssl-devel
yum -y install perl
cd /app/src
cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd sshd.backup
rpm -e --nodeps `rpm -qa | grep openssh`
#安装 openssh
tar -zxvf openssh-9.7p1.tar.gz
cd openssh-9.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/openssl --without-hardening
make && make install
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd
#添加自启服务ssh到开机启动项:
chkconfig --add sshd
chkconfig sshd on
#重启服务:
systemctl restart sshd
#验证结果:
ssh -V
vi /etc/ssh/sshd_config
PermitRootLogin yes #这个是允许root登陆
systemctl restart sshd