特别说明:原创文章,禁止转载,允许其他文章引用本文链接。
写在前面:OpenSSH(OpenBSD Secure Shell)早期是OpenBSD计划组所维护的一套用于安全访问远程计算机的连接工具,目前SSH仍然是Linux加密远程连接的重要途径,SSH存在漏洞将会给Linux系统带来巨大安全隐患,因此,升级SSH到最新版本是最靠谱的解决方案。本文将基于CentOS 7.9介绍SSH的升级方法。
准备:由于本文用到yum安装程序,需提取配置好yum源,可以参考另一篇文章进行设置,链接为:https://blog.youkuaiyun.com/tinmax/article/details/131524409[CentOS 7.9安装和更新]
1.下载
1.1下载openssh
方法1:使用命令直接下载,这里使用的最新版是9.9p1
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz -P /opt
方法2:点击链接下载最新版本源码包,复制/上传到服务器的/opt目录下,如果链接失效可以从openssh官网(OpenSSH)找到相关连接:
https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
1.2下载openssl
方法:直接在SSH终端输入以下命令下载
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz -P /opt
官网(需要此版本,下载如果出错就多试几次,网络有时不行)
1.3下载zlib
http://www.zlib.net/ 官网,用下面命令下载
wget http://www.zlib.net/zlib-1.3.1.tar.gz -P /opt
下载完成后,得到3个包,用下面命令查看:
cd /opt #进入OPT目录
ls *.tar.gz #列出刚刚下载的安装包
2.安装
2.1 备用连接方式准备
为防止SSH升级失败导致无法连接服务器,需要创建telnet作为备用远程通道。
如开启防火墙,需要增加该协议默认端口TCP 23的访问控制策略,并使之生效,命令如下:
firewall-cmd --permanent --add-port=23/tcp #添加策略
firewall-cmd --reload #加载策略
命令执行截图:

安装telnet服务并启动(实验机器的yum源已配置好,具体方法这里不做赘述):
yum install telnet-server.x86_64 -y #安装
systemctl enable telnet.socket #随机启动
systemctl start telnet.socket #启动服务
netstat -atln|grep 23 #检查服务监听,出现23端口监听为正常
命令执行截图:
创建普通用户,系统不允许root通过telnet连接:
useradd superadmin #添加用户
passwd superadmin #设置密码
命令执行截图:
使用telnet工具进行连接测试:


如图显示已经登录,就可以正常进行后续步骤。
2.2卸载原有SSH
返回之前的SSH连接,对原有SSH进行卸载,卸载之前可以查看一下当前SSH版本及SSL版本:
ssh -V #查看SSH、SSL版本
SSH为7.4p1,SSL为1.0.2k:
检查已安装的openssh组件:
rpm -qa |grep openssh

卸载openssh-server即可:
yum remove openssh-server-7.4p1-22.el7_9.x86_64

mv /etc/ssh /tmp/ssh-bak #备份原来的SSH服务配置文件
2.2安装SSH升级包
首先安装依赖包,否则很可能会报错:
yum install gcc gcc-c++ glibc make autoconf openssl-devel pcre-devel pam-devel
2.2.1安装zlib
cd /opt #进入安装包所在目录
tar zxvf zlib-1.3.1.tar.gz #解压安装包
cd zlib-1.3.1 #进入安装包目录
./configure #配置
make&&make install #编译和安装
安装正确则如下图所示:

2.2.2安装openssl
cd /opt
tar -zxvf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n/
./config --prefix=/opt/openssl # 这里安装在/opt下
make depend
make && make install
ln -sf /opt/openssl/bin/openssl /usr/bin/openssl #在/usr/bin/下创建openssl软连接
echo "/opt/openssl/lib/" >> /etc/ld.so.conf #环境变量中增加这一行代码
ldconfig -v #配置生效
openssl version #查看版本

2.2.3安装openssh
cd /opt/
tar zxvf openssh-9.9p1.tar.gz
cd openssh-9.9p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-ssl-dir=/opt/openssl --with-md5-passwords --mandir=/usr/share/man #配置相关参数
make && make install #编译并安装
sshd -V #查看版本信息
安装后的版本信息:

配置随机启动服务:
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
service sshd start #启动服务,如果成功,则完成升级。
4.连接最新SSH和关闭备用连接
4.1连接最新SSH
连接最新SSH需要注意以下几点:
1)升级SSH后,旧版本的SSH工具可能因加密算法的更新而无法连接,需要同步远程SSH工具。
2)默认配置不允许root用户SSH登录,需修改配置重启sshd服务才可以登录。
3)开启Selinux也会导致无法登录。
4.2关闭备用连接
systemctl stop telnet.socket
systemctl disable telnet.socket
netstat -atln|grep 23



6652

被折叠的 条评论
为什么被折叠?



