Centos7升级openssh到8.8版本
首先检查当前ssh的版本号:
ssh -V
如上图所示:我的ssh版本和ssl的版本为7.4和1.0.2
下面我们通过编译源码包的方式把openssh更新到8.8版本。
一、前期准备工作
1、查看centos的防火墙状态:
systemctl status firewalld
你可以选择执行以下2个命令关闭防火墙(禁止防火墙开机自启动)
systemctl stop firewalld
systemctl disable firewalld
也可以选择执行以下几个命令开放22端口(ssh的默认端口是22)
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=23/tcp --permanent
firewall-cmd --reload
温馨提示:为了防止后续安装失败导致无法连接到服务器,最好是先开启telnet连接功能,一旦openssh安装失败还可以用telnet连接服务器。参考链接:https://blog.csdn.net/lhrm0213/article/details/123862835
2、安装配置openssh的依赖环境
yum update -y
yum install -y gcc gcc-c++ glibc make autoconf wget vim unzip perl pcre-devel
3、通过sftp工具上传以下6个文件到/usr/local/src目录下:
文件下载地址链接:
https://pan.baidu.com/s/1Qazy2fYMOhHymz6HMwPzxg?pwd=xr4x
提取码:xr4x
解压缩密码:1234
二、安装openssl
进入/usr/local/src目录下
2.1、
安装pam
rpm -ivh --replacefiles pam-1.1.8-23.el7.x86_64.rpm
rpm -ivh pam-devel-1.1.8-23.el7.x86_64.rpm
2.2、
安装zlib
rpm -ivh --replacefiles zlib-1.2.7-21.el7_9.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-21.el7_9.x86_64.rpm
2.3、
备份文件
mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak
mv /etc/ssh /etc/ssh.bak
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
2.4、
安装openssl
依次执行以下4个命令
cd /usr/local/src
tar -zxvf openssl-1.1.1p.tar.gz
cd /usr/local/src/openssl-1.1.1p
./config shared --prefix=/usr/local/ssl && make && make install
(时间较长耐心等待编译安装完成…)
2.5、
添加软连接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
检查ssl的版本,命令:openssl version ** 如果报错(如上图),则编辑/etc/ld.so.conf文件
vi /etc/ld.so.conf
在最后添加/usr/local/ssl/lib
:wq保存并退出,执行:ldconfig /etc/ld.so.conf
再次查看openssl version**如下图所示,则说明ssl升级到1.1.1版本
三、安装openssh
3.1、
运行以下5个命令解压缩openssh,编译安装openssh
cd /usr/local/src/
tar -zxvf ./openssh-8.8p1.tar.gz
cd ./openssh-8.8p1
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-openssl-includes=/usr/local/ssl/include --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords --with-pam
make && make install
(时间较长耐心等待编译安装完成…)
3.2、
依次按顺序执行以下几个命令配置ssh服务:
cd /usr/local/src/openssh-8.8p1
cp -a ./contrib/redhat/sshd.init /etc/init.d/sshd
# 注意如果有弹出的提示,请输入y确认
cp -a ./contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
# 注意如果有弹出的提示,请输入y确认
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
以上几个命令如果执行不成功,请多次尝试一下,如下图所示,我多次执行以上命令已经成功启动了ssh服务
3.3、
启动ssh服务,并且配置root远程登录
systemctl start sshd ( 或者是systemctl restart sshd )
systemctl enable sshd
查看ssh版本号和状态,如下图openssh已经成功升级了
配置root用户远程登录
使用vi命令编辑/etc/ssh/sshd_config文件,取消Port 22的注释,允许root用户登录,设置为yes,参考如下图:
:wq保存并退出,然后systemctl restart sshd 重启ssh服务即可。
如下图,使用ssh协议和sftp协议都已经能正常连接了
参考:https://blog.csdn.net/qq_38221801/article/details/129043190
参考:https://blog.csdn.net/weixin_43741718/article/details/132583582
如果我的文章对您有帮助,还请您多多支持我。支付宝帮忙扫一下吧