Centos 7 升级Openssh7.4到9.2

该文描述了在CentOS7.6环境下,如何通过在线升级方式更新sshd服务,包括安装telnet服务以确保在升级过程中有备用登录方式,关闭防火墙和selinux,以及详细步骤来编译安装zlib、openssl和openssh的新版本,最终恢复和验证sshd服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本次使用在线升级,因此要求系统yum、wget等功能能正常使用。

环境:

cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core) 

ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017


 

1. 升级 过程中,sshd可能无法使用,因此需要安装telnete服务

yum -y install xinetd telnet-server

 2.允许root远程登录telnet

sed -i "2s/^/#/g" /etc/pam.d/login

 3.添加超级用户登陆设备至/etc/securetty文件

for  i in `seq 0 10` ;do  echo  "pts/$i" >> /etc/securetty;done

 4.重启telnet和xinetd服务【telnet服务依赖于xinetd服务】

systemctl restart telnet.socket

systemctl restart xinetd

 5.验证telnet登录是否正常

5.关闭防火墙和selinux

systemctl stop  firewalld 
systemctl disable  firewalld 
systemctl stop iptables
systemctl disable iptables

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config && setenforce 0 

 6.安装依赖包

yum -y install gcc make perl zlib zlib-devel pam pam-devel


 

 7.升级Openssh

这一步骤需要分别下载、预编译、编译、安装,并刷新加载生成的相应的库文件

zlib-1.2.11.tar.gz

openssl-1.0.2o.tar.gz

openssh-9.2p1.tar.gz

 这个压缩包地址为:

链接:https://pan.baidu.com/s/1A9uNnpaeeZyuBwPukQ4WGg 
提取码:6666 
--来自百度网盘超级会员V5的分享

a)备份ssh配置文件

cp -r /etc/ssh /etc/ssh.old

b)卸载系统原有openssh包,并验证是否卸载成功

rpm -e --nodeps $(rpm -qa | grep openssh)

rpm -qa | grep openssh

 c)安装zlib

wget https://www.cmdeye.com/wp-content/uploads/shell/openssl/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

 

 

 d)新建并编辑zlib配置文件,并刷新库文件,加载刚才编译安装的zlib生成的库文件

echo '/usr/local/zlib/lib' >>/etc/ld.so.conf.d/zlib.conf

ldconfig -v

 e)编译安装openssl

wget  https://www.cmdeye.com/wp-content/uploads/shell/openssl/openssl-1.0.2o.tar.gz

tar -xzvf openssl-1.0.2o.tar.gz

cd openssl-1.0.2o

./config shared zlib

make &&  make install

f)重命名现有文件目录,并创建ssl相关软连接

mv /usr/bin/openssl /usr/bin/openssl.bak

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

ln -s /usr/local/ssl/include/openssl /usr/include/openssl

g)编辑配置文件

echo '/usr/local/ssl/lib' >>/etc/ld.so.conf.d/ssl.conf

h)刷新库文件,加载刚才编译安装的ssl生成的库文件

ldconfig -v

h)更新openssl-devel包,升级openssh

yum -y install openssl-devel

wget    https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz

tar -zxvf  openssh-9.2p1.tar.gz

cd   openssh-9.2p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-zlib --without-openssl-header-check --with-ssl-dir=/usr/local --with-privsep-path=/var/lib/sshd

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

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

systemctl restart sshd

 至此,openssh升级成功。

### 如何在CentOS 6.6上升级OpenSSH7.4版本 #### 准备工作 为了确保系统的稳定性和安全性,在执行任何更新操作之前,建议备份重要数据并记录当前配置。 #### 升级EPEL仓库 由于默认的CentOS 6.x库不提供最新的软件包版本,因此需要启用额外的第三方存储库来获取较新的OpenSSH版本。可以使用EPEL(Extra Packages for Enterprise Linux),这是一个由社区维护的企业Linux发行版附加软件包集合[^1]: ```bash sudo yum install epel-release ``` 然而需要注意的是,默认情况下即使启用了EPEL也可能无法直接获得如此高版本的OpenSSH,因为这涉及到安全审核流程以及与旧内核兼容性的考量。 #### 编译安装最新版OpenSSH 对于特定版本的需求如OpenSSH 7.4,则可能不得不采取源码编译的方式来进行安装: 1. 安装必要的构建工具和依赖项: ```bash sudo yum groupinstall "Development Tools" sudo yum install pam-devel openssl-devel zlib-devel ``` 2. 下载指定版本的OpenSSH源代码(这里以7.4p1为例): ```bash wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz tar -xf openssh-7.4p1.tar.gz cd openssh-7.4p1/ ``` 3. 配置编译环境并编译程序: ```bash ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-pam \ --with-zlib=shared \ --with-md5-passwords make ``` 4. 替换现有服务前先停止它: ```bash service sshd stop ``` 5. 执行安装命令并将新版本复制到适当位置: ```bash cp ssh/sshd /usr/sbin/. cp contrib/redhat/sshd.init /etc/init.d/sshd chmod +x /etc/init.d/sshd ``` 6. 修改`sshd_config`文件中的路径设置,如果有必要的话. 7. 启动新的SSH守护进程并验证其运行状态: ```bash chkconfig --add sshd chkconfig sshd on service sshd start ss -tnlp | grep sshd ``` 8. 测试连接以确认一切正常运作之后再关闭旧版本的服务端口.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zcfeng530

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值