CentOS环境下OpenSSH9.8p1升级实践
安装Telnet服务
为了避免升级OpenSSH导致服务器不可连接。需要先下载安装Telnet组件。升级期间使用Telnet作为升级期间的服务器连接方式。
- 先查询telnet是否安装
rpm -qa telnet - 如果没有安装则执行以下语句安装
yum -y install telnet - 查询telnet-server是否安装
rpm -qa telnet-server - 如果没有安装则执行以下语句安装
yum -y install telnet-server - 防火墙状态放行telent
firewall-cmd --permanent --add-port=23/tcp --zone=public - 防火墙重新载入
firewall-cmd --reload - 启用Telnet服务开机启动
systemctl enable telnet.socket - 启动Telnet服务
systemctl start telnet.socket
*注意:
- 若防火墙是已经禁用。请略过防火墙相关命令
- 若防火墙是暂时停止。建议先启动防火墙,添加访问策略!否则重装过程需要服务器重启,重启后可能因为防火墙原因无法通过telnet访问服务器。如果OpenSSH又安装失败,将导致服务器不可连接。附:防火墙启动命令
systemctl start firewalld
创建使用Telnet服务的账户
因为默认情况root 不能直接登录telnet
创建一个新用户用于登录elnet服务,这个账号升级完成后需要进行删除。
- 创建账号
sudo useradd tempuser - 设置密码
sudo passwd tempuser
输入一个密码,例如:Mycar=998
后续访问的时候,通过XShell工具连接
先用tempuser登录后,再使用
su root
切换到root用户。
升级OpenSSH
请特别注意:以下命令是使用Telnet连接后,切换到root账户进行操作。如果直接使用SSH链接进行操作,将可能会导致服务器无法连接的后果!!!
- 安装相关的依赖项,如有遗漏再次安装
yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
yum -y install perl-IPC-Cmd
yum -y install pam-devel - 安装相关的依赖项,如有遗漏再次安装
yum -y install gcc pam-devel zlib-devel openssl-devel net-tools - 进入本地临时目录
cd /usr/local/src - 下载源代码包
wget https://www.zlib.net/zlib-1.3.1.tar.gz
wget https://www.openssl.org/source/openssl-3.3.1.tar.gz
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
说明:以上安装包下载可能需要耗费不少时间!如果下载速度很慢,可以考虑去我个人分享的网盘下载。 - 解压缩代码包
tar -zxvf zlib-1.3.1.tar.gz
tar -zxvf openssl-3.3.1.tar.gz
tar -zxvf openssh-9.8p1.tar.gz
安装Zlib
- 进入zlib-1.3.1目录
cd /usr/local/src/zlib-1.3.1 - 配置
./configure --prefix=/usr/local/src/zlib - 编译及安装
make -j 4 && make test && make install
安装OpenSSL
- 进入openssl-3.3.1目录
cd /usr/local/src/openssl-3.3.1 - 配置
./config --prefix=/usr/local/src/openssl - 编译及安装
make -j 4 && make install - 配置
mv /usr/bin/openssl /usr/bin/oldopenssl
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3 - 更新动态库
vim /etc/ld.so.conf
添加 /usr/local/src/openssl/lib64 到文件中。并删除类似的旧行。我这边实际1情况是删除了 /usr/local/openssl/lib64
ldconfig - 查看更新后的版本
openssl version -v
卸载旧版本OpenSSH
- 卸载旧版本OpenSSH服务
yum remove -y openssh - 清理残余文件
rm -rf /etc/ssh/*
安装最新版OpenSSH服务
- 进入openssh-9.8p1目录
cd /usr/local/src/openssh-9.8p1 - 配置
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib - 编译及安装
make -j 4 && make install - 查看目录版本
/usr/local/src/ssh/bin/ssh -V - 复制新ssh文件
cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
cp -rf /usr/local/src/openssh-9.8p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen - 允许root登录
echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
安装后的收尾
- 重启sshd服务
/etc/init.d/sshd restart - 查看服务运行状态
/etc/init.d/sshd status - 添加开机启动
chkconfig --add sshd - 查看升级后ssh版本
ssh -V
关闭Telnet服务
- 停止Telnet 服务
systemctl stop telnet.socket - 禁用Telnet服务开机启动
systemctl disable telnet.socket
删除临时用户
- 使用命令删除临时用户
userdel -rf tempuser
提示:这篇文章只作为学习记录,感谢原作者分享。
参考链接:
https://blog.csdn.net/Jerry_zhy/article/details/141217681
CentOS环境下OpenSSH9.8p1升级实践的更多相关文章
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- Centos环境下部署游戏服务器-软件安装
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个n ...
- CentOS环境下R语言的安装和配置
最近在看数据统计和分析,想到了R语言,于是就着手在自己的CentOS环境下进行安装和配置.步骤如下: 1.前往R官网下载安装包. 2.解压压缩包:tar xvzf R-3.2.2.tar.gz 3.进 ...
- 在Centos环境下安装兼容Apache2.4高版本SVN服务
在阿里云Centos环境下,搭建PHP运行环境,PHP选择了php7版本,Mysql选择了5.7版本,Apache选择了2.4版本,在搭建SVN版本控制服务过程中出现了不兼容问题,当前环境下Apach ...
- linux系统Centos环境下搭建SVN服务器及权限配置
linux系统Centos环境下如何搭建SVN服务器以及svnserve.conf.authz.passwd配置文件详细介绍 至于svn的概念,这里就不做详细阐述了,可以自行百度.简单来讲就是一个 ...
- CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点
因为我的个人网站 restran.net 已经启用,博客园的内容已经不再更新.请访问我的个人网站获取这篇文章的最新内容,CentOS 环境下基于 Nginx uwsgi 搭建 Django 站点 以下 ...
- centos环境下输入命令不能有中文那么我怎么插入中文数据到数据库
centos环境下输入命令不能有中文那么我怎么插入中文数据到数据库 如下图: 首先查看是否安装了中文语言支持组件 yum grouplist 没有的话安装 yum install Chinese Su ...
- centos环境下创建数据库和表的方法
centos环境下创建数据库和表的方法 //查询数据库的命令: mysql> SHOW DATABASES; +--------------------+ | Database ...
- centos环境下登录mysql报 ERROR 1045 (28000)怎么解决
centos环境下登录mysql报 ERROR 1045 (28000)怎么解决 新入手一台虚拟机,Centos7系列的操作系统,安装mysql后,执行连接出现了Mysql ERROR 1045 (2 ...
- Centos环境下手动设置-网络参数配置-网络挨排错顺序-设置网卡为上网模式的设定
Linux中网络参数大致包含以下内容: IP地址 子网掩码 网关 DNS服务器 主机名(默认 localhost) 历来Linux系统中修改这些参数的方式通常有:命令.文件两种.其中通过命令设置可以立 ...
随机推荐
- 在NextChat中接入SiliconCloud API 体验不同的开源先进大语言模型
NextChat介绍 One-Click to get a well-designed cross-platform ChatGPT web UI, with GPT3, GPT4 & Gem ...
- C++ was not declared in this scope
大概一搜百度,没搜到想要的结果,后面自己发现问题,由于是第二次犯这个错误(第一次很快发现,这一次找了比较久),所以记录一下 当调用一个数据结构或者一个函数的时候,出现这个语句,首先看相关的头文件有没有 ...
- 折腾 Quickwit,Rust 编写的分布式搜索引擎 - 从不同的来源摄取数据
摄取 API 在这节教程中,我们将介绍如何使用 Ingest API 向 Quickwit 发送数据. 要跟随这节教程,您需要有一个本地的 Quickwit 实例正在运行. https://quick ...
- Docker Windows 下的绑定挂载
在 Windows 环境下进行绑定挂载时,需要注意路径的写法,需要使用 Windows 风格 (C:\xxx\xxx) 的路径,而不是 Cygwin (/c/xxx/xxx) 风格的路径.这一点在使用 ...
- 【Mac】之安装FileZilla
FileZilla下载地址:http://www.pc6.com/mac/111230.html 连接FTP服务器: 下载完成之后需要修改字符集编码: ①先添加站点 ②填写:gb2312字符集
- Clion+OpenCV(C++版)开发环境配置教程WinMac
Clion+OpenCV(C++版)开发环境配置教程Win/Mac 平时在学习和比赛的时候都是使用的Python版本的OpenCV,最近遇到了一个项目使用的上位机性能有限于是决定视觉方面使用C++的O ...
- Java并发编程之验证volatile指令重排-理论篇
Java并发编程之验证volatile指令重排-理论篇 Java并发包下的类中大量使用了volatile关键字.通过之前文章介绍,大家已经知道了volatile的三大特性:共享变量可见性:不保证原子性 ...
- 淘宝订单信息获取接口,淘宝订单信息获取API
在日常电商软件开发的工作中,我们经常会遇到需要淘宝的订单信息的场景,比如:打单.发货,又比如做BI工具等.这就需要用到淘宝订单信息获取接口.只有获取到淘宝订单信息,才能进行下一步工作. 目前这个接口是 ...
- C语言输出格式工整的日历——2乘6样式(详见本文)
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码如不能在Dev-C++上完好运行,出现如下问题: E:\Dev-Cpp\源代码\万年历.c [Error] 'for' loop initia ...
- Splay/LCT 学习笔记
唔,其实我不会 Splay,但是我会 LCT. 众所周知,会 LCT 和会 Splay 是两回事,因为 LCT 只需要旋至根即可. 到现在还是不会,但是先把 LCT 的 Splay 写一下吧. 自己复 ...