升级缘由:安全检查扫描出系统 openssh版本过低 需要升级
升级步骤:
准备工作:
1 确保升级前telnet可用以防升级失败服务器失联
2 准备工具包(系统为centos7)(如果服务器库不全可能提示需要gcc g++等,可以编译时根据提示安装需要的库)
rpm包下载地址:https://www.rpmfind.net/linux/rpm2html/,可以根据需要搜索对应的版本。
源码包从官网下载即可。
正式安装:
- 安装pam包
rpm -ivh --replacefiles pam-1.1.8-23.el7.x86_64.rpm
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm
- 安装 zlib包
rpm -ivh --replacefiles zlib-1.2.7-20.el7_9.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-20.el7_9.x86_64.rpm
- 安装openssl (将openssl-1.1.1p.tar.gz 放在 /usr/local/src目录下)
1)备份:
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
2)编译
cd /usr/local/src
tar -xzvf openssl-1.1.1p.tar.gz
cd /usr/local/src/openssl-1.1.1p
./config shared --prefix=/usr/local/ssl && make && make install
3)添加软连接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
- 查看openssl是否已安好:
openssl version
如果报找不到动态库libssl.so.1.1,
vim /etc/ld.so.conf
最后一行增加: /usr/local/ssl/lib
执行:ldconfig /etc/ld.so.conf
执行: openssl version
查看版本信息
- 安装openssh (openssh-8.8p1.tar.gz放在/usr/local/src目录下)
1)备份
mv /etc/ssh /etc/ssh.bak
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
2)编译及修改权限
tar -xzvf /usr/local/src/openssh-8.8p1.tar.gz
cd /usr/local/src/openssh-8.8p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam
make && make install
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
- 启动sshd 并将sshd加入开机自启
systemctl restart sshd
systemctl enable sshd.service
- 检查:输出
ssh -V
查看是否已升级到新版本 新开启一个ssh链接,尝试是否可以正常登录。 - 登陆不上处理方法 考虑是否是
/etc/ssh/sshd_config
配置不对,常见的修改配置有:PermitRootLogin yes、PubkeyAuthentication yes、PasswordAuthentication yes
- openssh升级成功后 删除bak文件 停止telnet。