升级openssh7.4到8.0以上(不升级ssl)

升级openssh7.4到8.0以上(不升级ssl)

本文升级openssh8.1,所处环境:centos7,openssl1.0.2k-fips(yum升级openssh(7.4)时ssl的升级版本)

由于项目对安全性要求高,旧版7.4有漏洞,升级openssh到最新8.1。奈何网上一搜全是复制粘贴赚积分,升级成功但是连不上,都没人发现问题吗,折腾了几天,实在不想吐槽了。不知是不是我没升openssl的原因,可我就是只想升ssh而已,我升ssl干啥,多此一举。不废话了,教程开始:

1.安装telnet用于远程连接(因为ssh需要停止)

# telnet依赖于xinetd
yum install xinetd telnet-server -y

# 编辑追加pts/0 pts/1 pts/2 pts/3
echo -e "pts/0\npts/1\npts/2\npts/3" >> /etc/securetty

# telnet服务 开机运行 和 启动
systemctl enable xinetd
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd

2.断开ssh连接(保留连接不知有没影响),用telnet模式连接上再后续操作

3.卸载旧版

一定要停止服务,否则升级后ssh连不上,重启sshd服务都没用,只能退回旧版重来!!!

# 停止服务!!!
service sshd stop

# 卸载旧版
rpm -e `rpm -qa | grep openssh` --nodeps

# 移除旧的密钥文件等
# 我不喜欢备份,反正失败了还可以安装回来旧版yum install -y openssh-server openssh-clients
rm -rf /etc/ssh/*

4.安装新版

安装依赖
yum -y install gcc pam-devel zlib-devel openssl-devel
下载解压
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.1p1.tar.gz
tar -xzvf openssh-8.1p1.tar.gz
更改权限,默认所有者不是root
chown -R root.root ./openssh-8.1p1
文件夹内编译(prefix最好别改,下面cp的sshd里边有两项指向到/usr,否则需要手动修改sshd)
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam

升级openssh7.4到8.0以上(不升级ssl)_第1张图片

安装
make && make install
复制文件并更改权限
cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
允许root用户远程登录>>添加(或取消注释并修改)
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

升级openssh7.4到8.0以上(不升级ssl)_第2张图片

设置ssh开机启动并启动服务
chkconfig --add sshd
chkconfig sshd on

service sshd start
ssh连接上后,断开telnet连接,停止服务(我强迫症再把它卸载了)
systemctl disable xinetd.service
systemctl stop xinetd.service
systemctl disable telnet.socket
systemctl stop telnet.socket

rpm -e `rpm -qa | grep telnet` --nodeps
rpm -e `rpm -qa | grep xinetd` --nodeps

至此openssh升级结束,由 木头脑瓜子 发表

你可能感兴趣的:(升级openssh7.4到8.0以上(不升级ssl))