为什么需要升级OpenSSH?
OpenSSH 7.4以下版本存在严重漏洞:
1.准备编译环境
yum install pam-devel zlib-devel openssl openssl-devel wget gcc -y
2.升级过程中,SSH服务不可用,因此需要安装及配置telnet
yum -y install telnet-server* telnet
3.配置telnet server服务
#允许root用户通过telnet登录 mv /etc/securetty /etc/securetty.old #启动telnet服务 systemctl start telnet.socket #使telnet服务开机启动,防止意外重启 systemctl enable telnet.socket
4.服务器防火墙开放23端口
5.测试telnet能否正常登入系统
telnet xxx.xxx.xxx.xxx
1.下载源码软件包
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
2.解压源码包并执行编译安装
#解压源码包 tar zxvf openssh-8.1p1.tar.gz cd openssh-8.1p1 #开始编译安装 ./configure make make install
安装完毕之后sshd将会安装到/usr/local/sbin/目录下。而ssh、ssh-keygen等命令都会安装到/usr/local/bin目录下。
操作系统的PATH路径是优先选择/usr/local/的,所以普通命令都可以使用到最新的,但是server端的sshd我们还需要做额外的配置。
3.修改sshd启动脚本
#/usr/lib/systemd/system/sshd-keygen.service 将ExecStart=/usr/sbin/sshd-keygen 替换为: ExecStart=/usr/local/bin/sshd-keygen #/usr/lib/systemd/system/sshd.service 将ExecStart=/usr/sbin/sshd $OPTIONS 替换为: ExecStart=/usr/local/sbin/sshd $OPTIONS #/usr/lib/systemd/system/sshd@.service 将ExecStart=-/usr/sbin/sshd -i $OPTIONS 替换为: ExecStart=-/usr/local/sbin/sshd -i $OPTIONSka
快速替换脚本:
sed -i 's?ExecStart=/usr/sbin/sshd-keygen $OPTIONS?ExecStart=/usr/local/sbin/sshd-keygen $OPTIONS?g' /usr/lib/systemd/system/sshd-keygen.service sed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd-keygen.service sed -i 's?ExecStart=/usr/sbin/sshd $OPTIONS?ExecStart=/usr/local/sbin/sshd $OPTIONS?g' /usr/lib/systemd/system/sshd@.service
安装完成后,重启SSH相关服务即可