之前发了个文章,搭建了一个OpenVPN,然后测试成功之后,想着这台服务器应该没问题了。
就执行漏扫发现存在openSSH安全漏洞,今天就写升级OpenSSH和OpenSSL。
本来想着单独升级OpenSSH的,但是下载了最新版本的OpenSSH 编译的时候发现,要球OpenSSL版本必须在1.1.1以上,而我的服务器版本是1.0.1.。。。。
一. 升级OpenSSL
1. 下载安装包
下载地址:https://www.openssl.org/source/openssl-3.2.1.tar.gz
版本为3.2.1,既然都下载了,直接上最新版吧
2. 上传解压
下载通过rz上传到 /usr/local 目录下
解压到 当前 目录下(这个目录随意)
tar -xf openssl-3.2.1.tar.gz cd openssl-3.2.1
3. 编译
./config --prefix=/usr/src/ssl -d sharedmake && make install
写入文件
echo '/usr/local/ssl/lib' >> /etc/ld.so.conf/openssl.conf
ldconfig -v
如果不升级OpenSSL的话,在编译OpenSSH的时候可能会报错
make: *** 没有指明目标并且找不到 makefile
而且在编译之前的一步末尾会报错OpenSSL版本过低,这个忘记截图了。。。。。
二、升级OpenSSH
1. 下载安装包
下载地址:pub-OpenBSD-OpenSSH-portable安装包下载_开源镜像站-阿里云
2. 解压
rz上传到服务器 ,我实际使用的是9.7
解压到其他目录
tar -xf openssh-9.7p1.tar.gz -C /usr/srccd /usr/src/openssh-9.7p1
3. 备份之前的配置文件
cd /etc/sshcp sshd_config{,.bak}cd /etc/pam.dcp sshd{,.bak}
4. 安装依赖包
yum -y install gcc gcc-c++ zlib-devel openssl-devel pam-devel
5. 编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-pam --with-ssl-dir=/usr/src/openssl-3.2.1/make && make install
5. 检查
echo $?
6. 设置文件权限(要不然启动服务时候会报错权限过大)
相关命令:
sshd -t
报错信息:
Unable to load host key “/etc/ssh/ssh_host_ed25519_key”: bad permissions
Unable to load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available – exiting.
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_keycp -a contrib/redhat/sshd.init /etc/init.d/sshdchmod u+x /etc/init.d/sshd
7. 恢复配置文件
cd /etc/sshmv -f sshd_config.bak sshd_configcd /etc/pam.dmv -f sshd.bak sshd
8. 修改配置文件,添加自启动
sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_configchkconfig --add sshdchkconfig sshd onchkconfig --listsystemctl restart sshdsystemctl status sshd
9. 完结收工
三、关于升级完了OpenSSH之后ssh连接服务器报错:找不到匹配的host key算法
我的选择是删除 /etc/ssh 目录下 ssh_host_* 文件,重启 sshd 服务后恢复
cd /etc/sshmkdir backupmv ssh_host_* backupsystemctl restart sshd
关于此问题另外两个大神的解决方法:
花花世界好欢喜大神的:解决ssh登录,找不到匹配的host key算法-CSDN博客
以及 不太灵光的程序员大神的:【漏洞修复】openssh 升级到后 xshell 连接提示找不到 key_找不到匹配的host key算法-CSDN博客