最近公司的系統被客戶那邊的一套掃描漏洞的設備掃出了關於 openssh 的幾個漏洞,大概看了一下主要是由於 openssh 當前版本爲 5.3,版本低了,原本以爲是個小問題,我本身的 distribution 是 centos 6.x, yum 最新的 openssh 也只是 5.3,沒辦法只能到 rpm 官網找新的包,找到最新的是 6.4,而後經過 yum localinstall 升級了,沒想到次日客戶反映還存在 openssh 漏洞,要一個沒有才能對外開放 22 端口。 懵逼,沒辦法,只能去openssh 官網找最新的 release,最新版本是 7.5,安裝過程當中遇到了一系列的坑,就不一一述說了,爲了幫助你們避免這些坑,特記錄下來僅供參考。vim
cd /root/ mkdir ssh_upgrade && cd ssh_upgrade
rz 安裝包
ssh -V
yum remove openssh -y
yum install gcc openssl-devel zlib-devel tar zxvf openssh-7.5p1.tar.gz cd openssh-7.5p1 ./configure make && make install
cp ./contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/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
cp sshd_config /etc/ssh/sshd_config vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,並去掉註釋
這一操做很重要!很重要!很重要!重要的事情說三遍,由於openssh安裝好默認是不執行sshd_config文件的,因此即便在sshd_config中配置容許root用戶遠程登陸,可是不加上這句命令,仍是不會生效!centos
vim /etc/init.d/sshd 在 ‘$SSHD $OPTIONS && success || failure’這一行上面加上一行 ‘OPTIONS="-f /etc/ssh/sshd_config"’ 保存退出
service sshd start