CentOS7.x操作系统自带的OpenSSH版本默认为7.4p1,使用yum update最高也只能升级到7.4p1的补丁版本,漏扫会发现很多OpenSSH相关的漏洞,根据等保安全测评的要求,需要将OpenSSH升级到更新的版本,本篇文档记录了我本次升级的过程以及遇到的问题,供大家参考。
安装包下载地址
Openssl 下载地址:https://ftp.openssl.org/source/
Openssh 下载地址:https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/
安装基础环境包
注:受perl版本限制,最新版的openssl1.1.1需要perl5.10+版本,
1 | yum -y install ntpdate wget gcc gcc-c++ glibc make krb5-libs krb5-devel zlib-devel pam-devel perl |
同步服务器时间
1 | ntpdate ntp.aliyun.com |
升级openssl
1 | openssl version |

下载编译安装openssl
1 | wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz --no-check-certificate |
备份openssl
1 | mv /usr/bin/openssl{,.bak} |
创建软连接
1 | ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/ |

升级openssh
安装、配置telnet服务
1 | yum install xinetd telnet-server -y |
1 | cat > /etc/xinetd.d/telnet <<EOF |
允许root远程telnet登录主机
1 | vim /etc/securetty |
配置开机自启动
1 | systemctl enable telnet.socket |
放行防火墙
1 | firewall-cmd --add-service=telnet --zone=public --permanent |
以下操作使用telnet远程登录主机进行操作

备份openssh配置
1 | mv /etc/ssh{,.bak} |
卸载旧版本openssh
1 | rpm -e --nodeps `rpm -qa | grep openssh` |
编译安装openssh
1 | wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz |
修改配置文件
1 | cp contrib/redhat/sshd.init /etc/init.d/sshd |
配置开机自启动
升级后不能使用systemctl 方式启动,感觉有点怪……
1 | /etc/init.d/sshd start |
测试通过后,关闭telnet(telnet是明文传输,不安全)
1 | systemctl disable xinetd |
您可能遇到的问题?
问题1:make: *** [configdata.pm] Error 1

解决方案:服务器时间不对,手动调整服务器时间即可
1 | ntpdate ntp.aliyun.com |
问题2:Failed to listen on Telnet Server Activation Socket.

解决方案:由于已经启动了一个xinetd进程,杀掉,重新启动telnet即可

问题3:configure: error: PAM headers not found
解决方案: yum -y install pam-devel
问题4:error: Could not get shadow information for root

解决方案:由于开启了selinux导致,关闭即可
1 | #临时解决方案: |
问题5:sshd.service start operation timed out. Terminating

解决方案:sshd不兼容systemd造成的,sshd启动方式修改为sysv即可。
1 | mv /usr/lib/systemd/system/sshd.service{,.bak} |
问题6:服务器发送了一个意外的数据包。received:3,expected:20
在/etc/ssh/sshd_config最后添加以下内容,重启sshd服务
1 | KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 |
问题7:no matching key exchange algorithm found
openssh升级完成后,xshell 4 无法连接服务器,升级xhell版本或者更好其他连接工具。