最近遇到了服务器漏洞,需要对服务器的OpenSSH版本进行升级,查阅了相关资料,总结出了一套比较简单的方案。中间遇到的个别问题也进行了记录,供大家参考。
下载准备
-
从https://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz下载对应的升级包
-
将下载包上传到服务器home文件夹下
查看之前版本
ssh -V
安装依赖
sudo yum install -y gcc openssl-devel zlib zlib-devel wget lrzsz zlib gcc-c++
openSSH编译
cd /home
tar xf openssh-9.1p1.tar.gz
cd openssh-9.1p1
sudo ./configure
sudo make -j 2
sudo make install
修改配置文件
sudo cp -r /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
sudo \cp /home/openssh-9.1p1/sshd_config /etc/ssh/sshd_config
sudo sed -ri 's/^#(PermitRootLogin).*/\1 yes/g' /etc/ssh/sshd_config
sudo sed -ri 's/^(Subsystem).*/\1 sftp \/usr\/libexec\/openssh\/sftp-server/g' /etc/ssh/sshd_config
sudo sh -c 'echo "Ciphers aes128-ctr,aes192-ctr,aes256-ctr" >> /etc/ssh/sshd_config'
sudo sh -c 'echo 'OPTIONS="-f /etc/ssh/sshd_config"' >> /etc/sysconfig/sshd'
sudo sed -ri 's/^(ExecStart=).*/\1\/usr\/local\/sbin\/sshd -D $OPTIONS/g' /usr/lib/systemd/system/sshd.service
sudo sed -ri 's/^(Type=).*/\1simple/g' /usr/lib/systemd/system/sshd.service
重启服务
sudo systemctl daemon-reload
sudo systemctl restart sshd
sudo \cp /usr/bin/ssh{,.bak}
sudo \cp /usr/local/bin/ssh /usr/bin/ssh
升级结果验证
ssh -V
部分问题的解决方法
-
在部署过程中,有一台服务器出现
configure: error: *** working libcrypto not found, check config.log
这样的问题,查阅了相关资料,发现网上全是让执行下面的命令,安装openssl-devel
yum install -y openssl-devel
但是我这边安装后,依然出现和之前同样的问题,最后发现是我这边安装
openssl-devel
的时候报了相关错误Error: Package: 1:openssl-devel-1.0.2k-19.el7.x86_6
**解决办法:**最后,从https://rpmfind.net/linux/rpm2html/search.php?query=openssl-devel(x86-64)下载了对应的rpm包,然后执行下面命令后,安装成功的
rpm -ivh openssl-devel-1.0.2k-26.el7_9.x86_64.rpm