openssh upgrade to latest version
最近公司的系统被客户那边的一套扫描漏洞的设备扫出了关于 openssh 的几个漏洞,大概看了一下主要是因为 openssh 当前版本为 5.3,版本低了,本来觉得是个小问题,我自己的 distribution 是 centos 6.x, yum 最新的 openssh 也只是 5.3,没办法只能到 rpm 官网找新的包,找到最新的是 6.4,然后通过 yum localinstall 升级了,没想到第二天客户反映还存在 openssh 漏洞,要一个没有才能对外开放 22 端口。 懵逼,没办法,只能去openssh 官网找最新的 release,最新版本是 7.5,安装过程中遇到了一系列的坑,就不一一述说了,为了帮助大家避免这些坑,特记录下来仅供参考。
ssh 升级步骤
安装
cd /root/
mkdir ssh_upgrade && cd ssh_upgrade
上传openssh安装包
rz 安装包
查看当前openssh版本
ssh -V
卸载原有openssh
yum remove openssh -y
安装 gcc、openssl和zlib
yum install gcc openssl-devel zlib-devel
tar zxvf openssh-7.5p1.tar.gz
cd openssh-7.5p1
./configure
make && make install
拷贝ssh服务文件
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
修改SSHD服务文件
vim /etc/init.d/sshd
修改以下内容
SSHD=/usr/sbin/sshd 为 SSHD=/usr/local/sbin/sshd
/usr/sbin/ssh-keygen -A 为 /usr/local/bin/ssh-keygen -A
保存退出
加入系统服务
chkconfig --add sshd
查看系统启动服务是否增加改项
chkconfig --list |grep sshd
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
允许root用户远程登录
cp sshd_config /etc/ssh/sshd_config
vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,并去掉注释
配置允许root用户远程登录
这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!
vim /etc/init.d/sshd
在 ‘$SSHD $OPTIONS && success || failure’这一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’
保存退出
重启
service sshd start