centos7升级openssh至8.8版本
一、升级说明
1、升级OpenSSH后,原有公钥失效,信任关系需要重新配置;
2、升级过程需要停止sshd服务,会导致ssh和sftp无法使用;
3、升级需要关闭防火墙服务;
4、升级需要关闭selinux服务;
5、升级前需要开启telnet,防止升级失败,系统无法登录,对应的防火墙需要开启23端口,安装需要telnet相关包
6、升级过程中需要刷新lib库:ldconfig -v;
7、升级顺序:顺序是zlib库-> openssl -> openssh;
8、升级需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel依赖包;
二、安装包准备
需要准备的安装包(点击可本地下载):
openssh-8.8p1.tar.gz , zlib-1.2.11.tar.gz , openssl-1.0.2o.tar.gz
下载地址:
链接: https://pan.baidu.com/s/1dwzZcg08pCuDJlrokWx7Og 提取码: 82ez
三、安装并启用Telnet
1、安装telnet服务端
yum -y install xinetd telnet-server
编辑/etc/pam.d/login,注释掉下面这行
vi /etc/pam.d/login
#把auth的限制去掉
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
开启root用户远程登陆。此步骤可跳过!
vi /etc/pam.d/remote
auth required pam_securetty.so
3、重启telnet和xinetd服务 【telnet服务依赖于xinetd服务】
systemctl restart telnet.socket
systemctl restart xinetd
PS:如果开启了防火墙,需要将23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中。
四、安装升级
1、将上文下载的三个文件上传至服务器,目录可自行设定,方便即可。
zlib-1.2.11.tar.gz
openssl-1.0.2o.tar.gz
openssh-8.8p1.tar.gz
2、关闭系统防火墙
systemctl stop firewalld.service
3、关闭SElinux
#检查是否关闭:
getenforce
#如果未关闭,关闭之
setenforce 0
上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。
vi /etc/selinux/config
#修改:
SELINUX=disabled
#保存退出。
4、安装相关依赖包
yum -y install gcc make perl zlib zlib-devel pam pam-devel
安装完毕后执行下面命令,确保所有依赖包正常安装
rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
5、升级openSSH(注意从这步开始,通过Telnet登录到服务器,务必)
#停止ssh服务
systemctl stop sshd
#备份ssh配置文件
cp -r /etc/ssh /etc/ssh.old
查看系统原有openssh包
rpm -qa | grep openssh
#查询出的结果
openssh-7.4p1-22.el7_9.x86_64
openssh-server-7.4p1-22.el7_9.x86_64
openssh-clients-7.4p1-22.el7_9.x86_64
#根据上面查询出的结果,卸载系统里原有Openssh(一般有三个包,全部卸载)
rpm -e --nodeps openssh-7.4p1-22.el7_9.x86_64
rpm -e --nodeps openssh-server-7.4p1-22.el7_9.x86_64
rpm -e --nodeps openssh-clients-7.4p1-22.el7_9.x86_64
#卸载完成后执行rpm -qa | grep openssh,确保没有回显
rpm -qa | grep openssh
编译安装zlib
解压刚才上传到服务器的zlib-1.2.11.tar.gz,并进行编译安装
tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/zlib
make
make install
如果报错类似下图所示,请安装gcc
验证zlib安装是否成功,要包含include、lib、share三个目录。
ll /usr/local/zlib
#新建并编辑配置文件:
vi /etc/ld.so.conf.d/zlib.conf
#加入如下内容后保存退出
/usr/local/zlib/lib
#刷新库文件,加载刚才编译安装的zlib生成的库文件
ldconfig -v
编译安装openssl
解压安装openssl包,并进行编译安装
tar -xzvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
./config shared zlib
make (时间比较长,切勿打断)
make test (时间比较长,切勿打断)
make install (时间比较长,切勿打断)
#重命名现有文件目录
mv /usr/bin/openssl /usr/bin/openssl.bak
#创建ssl相关软连接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
#编辑配置文件
vi /etc/ld.so.conf.d/ssl.conf
#加入如下内容后保存退出
/usr/local/ssl/lib
#刷新库文件,加载刚才编译安装的ssl生成的库文件
ldconfig -v
#查看openssl版本
openssl version -a
升级openssh,编译安装
tar -zxvf openssh-8.8p1.tar.gz
cd openssh-8.8p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd --with-ssl-dir=/usr/local/ssl
make
#修改文件权限
chmod 600 /etc/ssh/ssh_host_rsa_key
chmod 600 /etc/ssh/ssh_host_ecdsa_key
chmod 600 /etc/ssh/ssh_host_ed25519_key
make install
#修改配置文件,允许root直接登录
echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
#ssh服务必须开机自启动,因此要进行一些设置
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig --add sshd
chkconfig sshd on
#重启sshd服务
systemctl restart sshd
#查看sshd服务状态
systemctl status sshd -l
#验证ssh版本
ssh -V
ssh登录测试,可以成功登录。
openssh版本升级完成!
如果之前是rpm包安装的。并且按照以上步骤操作,可以直接以下命令进行回滚.
yum -y install openssh-clients
yum -y install openssh-server
yum -y install openssh
升级openssl-1.1.1s 和 openssh 9.1s 请参考
https://blog.csdn.net/qq_27745471/article/details/128708290
yum单独升级openssh8.8 请参考
https://www.02405.com/archives/6097
链接: https://pan.baidu.com/s/1r70_ANDXpsWItaBY6r-wsw 提取码: vq43
tar -zxvf openssh8.8-c7.tar.gz
#备份
cp /etc/pam.d/sshd /etc/pam.d/sshd_bak
yum install ./*.rpm
==================================================================
升级ssh到9.1
openssl下载地址
https://www.openssl.org/source/old/1.1.1/openssl-1.1.1s.tar.gz
ssh下载地址
https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.1p1.tar.gz
# 一. openssl升级步骤
#安装依赖
yum -y install gcc make perl zlib zlib-devel pam pam-devel libselinux-devel
tar -xzf openssl-1.1.1s.tar.gz
#生成配置 需要gcc环境
./config --prefix=/usr/local/openssl-1.1.1s --shared
#编译安装
make && make install
#备份
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
#建立软链环境
ln -s /usr/local/openssl-1.1.1s/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-1.1.1s/include/openssl /usr/include/openssl
#刷新库
echo "/usr/local/openssl-1.1.1s/lib">>/etc/ld.so.conf
ldconfig -v
#查看版本
openssl version
# 二. openssh升级步骤
mv /etc/ssh /etc/ssh.bak
tar -xzf openssh-9.1p1.tar.gz
./configure --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl-1.1.1s/lib
make && make install
mv /etc/ssh.bak/sshd_config /etc/ssh/sshd_config
systemctl daemon-reload
systemctl restart sshd
#重新连接查看版本
ssh -V