前几天公司的服务器安全扫描,发现低版本的OpenSSH
存在安全漏洞,我们使用的是CentOS
镜像,现在大部分的系统上默认的OpenSSH
版本是7.4
,需要升级到最新的版本。最新版本目前是OpenSSH-8.1p1
查看当前ssh版本
1 2
| > ssh -V OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
|
下载OpenSSH
1 2
| > cd /opt > wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
|
查找sshd.pid路径
这个路径在升级成功后修改/etc/init.d/sshd
这个文件会用到。
1 2
| > find / -name sshd.pid /var/run/sshd.pid
|
解压OpenSSH
1 2
| > tar -zxvf openssh-8.1p1.tar.gz > cd openssh-8.1p1
|
卸载旧版本
现在开始,以下操作的命令都要在刚解压好的文件夹openssh-8.1p1
中执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| > rpm -e `rpm -qa |grep openssh` --nodeps warning: /etc/ssh/sshd_config saved as /etc/ssh/sshd_config.rpmsave
> yum -y install openssl-devel
> ./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-ssl --with-md5-passwords mandir=/usr/share/man/ > make && make install
> rm -f /etc/ssh/ssh_host_*
> cp contrib/redhat/sshd.init /etc/init.d/sshd && chmod 755 /etc/init.d/sshd
> vim /etc/init.d/sshd
SSHD=/usr/sbin/sshd PID_FILE=/var/run/sshd.pid
> /etc/init.d/sshd stop Reloading systemd: [ OK ] Stopping sshd (via systemctl): [ OK ] > /etc/init.d/sshd start Starting sshd (via systemctl): [ OK ]
> chkconfig --add sshd &&chkconfig sshd on
> sed 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' -i /etc/ssh/sshd_config > sed 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' -i /etc/ssh/sshd_config
> service sshd restart
> ssh -V OpenSSH_8.1p1, OpenSSL 1.0.2k-fips 26 Jan 2017
|
好了,现在OpenSSH
已经升级到最新的版本