Ubuntu 16.04 升级OpenSSH至7.7p1

Ubuntu 16.04 升级OpenSSH至7.7p1

因网安漏洞扫描扫出OpenSSH漏洞,需要对OpenSSH进行升级操作

安装zlib

# 下载zlib 编译安装
wget http://zlib.net/zlib-1.2.11.tar.gz

tar xf zlib-1.2.11.tar.gz && cd zlib-1.2.11/

./configure && make && make install

安装OpenSSH

需要安装有OpenSSL 1.0.2版本,由于我的服务器已经安装了1.0.2g,此处未进行OpenSSL的升级

# 安装OpenSSH
wget https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/OpenSSH-7.7p1.tar.gz

tar xf OpenSSH-7.7p1.tar.gz && cd OpenSSH-7.7p1/


# 备份启动脚本以及配置文件
cp /etc/init.d/ssh /etc/init.d/ssh.old && cp -r /etc/ssh /etc/ssh.old


# 安装OpenSSH
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-privsep-path=/var/lib/sshd 

make && make install

编译OpenSSH可能遇到的报错

# 报错:   configure: error: PAM headers not found
# 解决:   ubuntu: apt-get install libpam0g-dev   
#         centos: yum -y install pam-devel


# 报错:   configure: error: *** OpenSSL headers missing - please install first or check config.log ***
# 解决:   ubuntu: apt-get install libssl-dev   
#         centos: yum -y install openssl-devel

查看OpenSSH版本

OpenSSH -V

systemctl超时

OpenSSH升级完成后,使用systemctl启动或重启sshd服务,systemctl会卡住90秒超时,然后报错ssh启动失败,但是查看进程状态是正常运行并且使用正常的。
上网上查找资料也没有类似案例,无奈只能修改ssh的systemctl文件/lib/systemd/system/ssh.serviceType一项
Type=notify 表示当前服务启动完毕,会通知Systemd,再继续往下执行,判断是编译安装后的ssh服务正常启动后,没有给systemctl返回启动成功的信号。
Type=notify修改为Type=simple,这样systemctl不会等待ssh返回的信号。执行systemctl daemon-reload并重启sshd进程可以解决systemctl超时的问题

原文地址:https://www.cnblogs.com/hemingyuan/p/9528728.html