源码安装,OpenSSH升级到9.9p2(CentOS/Red Hat 系列)

本文仅是记一次安装成功的经历,内容仅供参考:文中涉及的一些非OpenSSH安装的额外操作请自行在网络搜索

原版本:系统默认的 OpenSSH_8.0p1, OpenSSL 1.1.1k  FIPS 25 Mar 2021
安装后版本:OpenSSH_9.9p2, OpenSSL 1.1.1k  FIPS 25 Mar 2021

一、注意事项

OpenSSL 版本确保 1.1.1 版本,如果不是,建议先升级 OpenSSL

sshd -V 或 openssl version -a 查看

安装前可以先安装telnet服务,开启root登录,测试可以通过本机root连接后再进行OpenSSH升级操作。以免安装过程中SSH不可用导致无法连接服务器。

如果没条件安装telnet, 建议安装时可以在不同网络的不同设备上打开多个SSH Shell连接,已备安装意外之需。

实在不行至少在本机多开几个Shell 连接窗口... 我有关窗好习惯,所以.....哎
 

二、升级步骤

1. 备份配置
sudo cp -r /etc/ssh /etc/ssh.bak
2. 安装依赖
sudo yum groupinstall "Development Tools"
sudo yum install -y gcc make zlib-devel openssl-devel pam-devel krb5-devel
3. 下载软件包
sudo cd /opt
sudo wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz
sudo tar -zvxf openssh-9.9p2.tar.gz
sudo cd openssh-9.9p2
4. 修改文件权限
sudo chmod 600 /etc/ssh/ssh_host_ed25519_key
sudo chmod 600 /etc/ssh/ssh_host_*key*
sudo chmod 644 /etc/ssh/ssh_host_*_key.pub

踩坑经历:未授权,编译安装时报如下错误。见权限错误时,授权相关文件重新操作即可。

5. 移除旧软件包
# yum 安装包移除(本案例yum移除)
sudo yum remove openssh-clients openssh-server

# 源码安装的可以尝试这么移(未实践)
mv /usr/bin/ssh /usr/bin/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /etc/pam.d/sshd  /etc/pam.d/sshd.bak

踩坑经历:没有先移除原安装,安装后启动报 "Bad configuration option: GSSAPIKexAlgorithms" 相关错误

6. 配置、编译和安装
sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-kerberos5

sudo make

sudo make install
7. 修改配置
# 这步可以先确保一下配置文件中是否有相关配置了,如果可以跳过,没有的项开启即可
sudo echo 'X11Forwarding yes' >> /etc/ssh/sshd_config
sudo echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sudo echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config

sudo cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
8. 检查下配置
sudo sshd -t   # 没有任何信息返回就是最好的结果,有错误会报错
9. 设置开机启动&启动
sudo cp contrib/redhat/sshd.init /etc/init.d/sshd

sudo systemctl enable sshd
sudo systemctl restart sshd
10. 检查结果
sudo systemctl status sshd # 看看服务运行状态
sudo sshd -V # 看看版本

本地Shell连接看看, OK...

三、回滚方案

本例如上操作完就安装成功了,未有机会验证回滚方案...实乃憾事...

# 卸载重装系统默认版本
sudo make uninstall
sudo yum reinstall openssh openssh-server openssh-clients

#还原配置
sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

#重启
sudo systemctl restart sshd
### 如何将 SSH 升级9.9p2 版本 为了实现 CentOS 7.6 上的 OpenSSH 升级9.9p2 并完成相关配置,以下是具体的操作方法: #### 准备工作 在开始之前,建议备份当前的 `/etc/ssh/sshd_config` 文件以防万一出现问题。此外,在升级过程中可能会导致 SSH 连接中断,因此推荐提前安装 telnet 或其他备用远程管理工具来防止意外断开连接[^2]。 #### 步骤一:切换软件源 由于默认的 CentOS 软件仓库可能不提供最新版的 OpenSSH,需更换为更稳定的第三方镜像源(如阿里云源),以便获取必要的更新和支持。 ```bash sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo sudo yum clean all && sudo yum makecache fast ``` #### 步骤二:卸载旧版本 OpenSSH 为了避免冲突,应先移除现有的 OpenSSH 安装及其关联组件。 ```bash sudo yum remove openssh-server openssh-clients openssl -y ``` #### 步骤三:下载并编译新版本 OpenSSH 及其依赖项 从官方站点或其他可信资源处下载目标版本 (此处假设为 9.9p2),同时确保已安装 GCC 编译器及相关开发库文件。 ```bash # 下载所需 RPM 包或者源码压缩包 wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz tar xfz openssh-9.9p2.tar.gz cd openssh-9.9p2/ yum groupinstall 'Development Tools' -y # 如果尚未安装开发环境,则执行此命令 ./configure --prefix=/usr \ --sysconfdir=/etc/ssh \ --with-md5-passwords \ --with-pam \ --without-audit \ --libexecdir=/usr/libexec/openssh \ --datadir=/usr/share/doc/openssh-9.9p2 \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --disable-strip \ --enable-hardening \ --with-default-path="/bin:/sbin:/usr/bin:/usr/sbin" \ --with-superuser-path="/bin:/sbin:/usr/bin:/usr/sbin" make && make install ``` #### 步骤四:重新启动服务与验证功能正常运行 完成上述过程之后重启 sshd 服务,并确认新的 openSSH 是否成功加载。 ```bash systemctl restart sshd.service sshd -T | grep version # 查看实际使用的 SSHD 的协议版本号 ``` #### 配置允许 root 用户直接登录 编辑 `/etc/ssh/sshd_config` 文件中的相关内容以激活 ROOT 登陆权限。 ```plaintext PermitRootLogin yes # 设置成 no 表示不允许;yes 是允许 PasswordAuthentication yes # 开启密码认证方式 ChallengeResponseAuthentication no UsePAM yes # 使用 PAM 认证模块 X11Forwarding yes # 启用 X11 转发支持图形界面应用访问 PrintMotd no # 不显示 MOTD 消息 AcceptEnv LANG LC_* # 接受客户端传递的语言变量设置 Subsystem sftp /usr/libexec/openssh/sftp-server ``` 保存修改后的配置文档后再次重起 ssh daemon 来使更改生效。 --- ### 注意事项 如果遇到任何错误提示,请仔细阅读报错信息并针对性解决。另外提醒一下,虽然这里演示的是完全替换掉系统自带的服务程序实例的方法,但在生产环境中通常会更加谨慎对待此类变更行为——比如创建自定义路径下的独立部署方案而非覆盖原始位置上的可执行文件集合等措施加以规避潜在风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值