Red Hat linux环境openssh升级到openssh-10.0p1

由于外网服务器扫描出SSH高危漏洞,需要升级SSH版本。

一、新版本SSH下载:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ 解压、编译配置(注意正确配置openssl路径)、编译、安装:

tar -zxvf openssh-10.0p1.tar.gz

cd openssh-10.0p1

./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl341 --sysconfdir=/etc/ssh --with-pam --with-gssapi --with-rsa --with-rhosts-allowed --with-zlib --with-md5-passwords

make && make install

在configure openssh时,有参数 --with-pam,会提示:
PAM is enabled. You may need to install a PAM control file for sshd, otherwise password authentication may fail. Example PAM control files can be found in the contrib/subdirectory
就是如果启用PAM,需要有一个控制文件,按照提示的路径找到redhat/sshd.pam,并复制到/etc/pam.d/sshd,在/etc/ssh/sshd_config中设置UsePAM yes。
/etc/pam.d/sshd中内容如下:

# 文件内容如下
#%PAM-1.0
auth	   required	pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

/etc/ssh/sshd_config 中设置UsePAM yes

二、替换原openssh
1、备份替换相关文件

mv /usr/sbin/sshd /usr/sbin/sshd_bak
mv /usr/bin/ssh /usr/bin/ssh_bak
mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen_bak

2、建立软连接

ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd //建立软连接
ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh //建立软连接
ln -s /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen //建立软连接

或复制文件

cp -rf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp -rf /usr/local/openssh/bin/ssh /usr/bin/ssh
cp -rf /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen

三、修改配置:
解决root不能远程SSH登录问题(如果不需要root帐户登陆不用配置)

1、注释/etc/pam.d/password-auth或/etc/pam.d/password-auth-ac中
#auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success

2、设置/etc/ssh/sshd_config 中PermitRootLogin yes

四、重启ssh服务:
systemctl restart sshd
如果重启报错Permissions 0640 for’/etc/ssh/*****.key’ are too open.

为文件的权限设置过于宽松执行

chmod -R 600 /etc/ssh

限制权限后再重启ssh服务解决
查询服务状态:

systemctl status sshd.service

正常运行,升级成功!!!
备注帐户解锁:
sudo passwd -u root
参考资料:
解决Linux系统Root不能远程SSH登录_linux ssh无法远程登录-CSDN博客

解决 OpenSSH开启 PAM后 root用户无法远程登录问题_failed password for root from-CSDN博客

解决openssh,openssl升级出现的坑_pam is enabled. you may need to install a pam cont-CSDN博客

启用UsePAM后用户登录失败_pam is enabled. you may need to install a pam cont-CSDN博客

openssl升级后开启UsePAM登录失败 - 焦国峰的随笔日记 - 博客园

linux环境openssl、openssh升级_openssl升级-CSDN博客

[SSH] Permissions 0644 for ‘.ssh/id_rsa‘ are too open._permissions 0644 for are too open-CSDN博客

key are too open_百度知道

磐维数据库openSSH 8.0到openSSH 9.3 - 墨天轮

docker启动sshd报错Could not load host key: /etc/ssh/ssh_host_rsa_key和Permissions 0640 for ‘/etc/ssh/ssh__docker could not load host key-CSDN博客

Linux系统下SSH服务启动失败故障处理_unit sshd.service entered failed state-CSDN博客

RedHat Linux 下升级SSH服务_redhat4.8 ssh升级-CSDN博客

### 升级 OpenSSH10.0p1 的方法 为了将系统中的 OpenSSH 版本升级10.0p1,可以采用以下两种主要方式之一:通过官方软件包管理器更新或者手动编译安装。 #### 方法一:通过 YUM 或 DNF 更新(适用于基于 RPM 的发行版) 如果目标操作系统支持最新的 OpenSSH 软件包,则可以通过标准的包管理系统完成升级。以下是具体操作: 1. **启用 EPEL 和其他第三方仓库** 对于 Red Hat Enterprise Linux (RHEL) 及其衍生版本,可能需要先启用额外的存储库来获取最新版本的 OpenSSH。例如: ```bash dnf install epel-release -y ``` 2. **检查可用的 OpenSSH 版本** 使用 `dnf` 命令查看当前可升级的版本列表: ```bash dnf list available openssh-server --refresh ``` 如果显示有更高版本可供安装,则可以直接执行下一步。 3. **执行升级** 运行以下命令以升级到最新稳定版本: ```bash dnf update openssh\* -y ``` 需要注意的是,在某些情况下,官方仓库可能尚未提供 OpenSSH-10.0p1。此时需考虑切换到更频繁更新的安全仓库或采取第二种方法[^1]。 --- #### 方法二:手动编译并安装 OpenSSH-10.0p1 当无法依赖现有软件源时,可以选择下载原始代码自行构建。此过程涉及以下几个环节: 1. **准备开发环境** 确保已安装必要的工具链和依赖项: ```bash yum groupinstall "Development Tools" -y yum install gcc make pam-devel openssl-devel zlib-devel libedit-devel -y ``` 2. **获取 OpenSSH 源码** 访问官方网站或其他可信资源站点下载对应 tarball 文件: ```bash wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz tar zxvf openssh-10.0p1.tar.gz && cd openssh-10.0p1/ ``` 3. **配置与编译** 执行如下脚本来定制化设置路径及其他选项,并启动实际编译流程: ```bash ./configure --sysconfdir=/etc/ssh --with-md5-passwords \ --with-pam --with-sandbox=yes CFLAGS="-O2" make clean all ``` 4. **替换旧版本程序** 在确认新实例功能正常之后实施覆盖动作;在此之前建议备份原文件以防万一出现问题能够迅速恢复。 ```bash cp /usr/sbin/sshd{,.bak} cp sshd /usr/sbin/. systemctl restart sshd.service ss -tulnp | grep ssh # 验证监听状态是否正确无误 ``` 最后一步非常重要——验证服务运行状况以及客户端连接测试均应顺利完成才表明整个迁移工作结束[^2]。 --- ### 注意事项 无论选用哪种途径实现目的都务必遵循最佳实践原则,比如提前做好充分的数据保护措施以免意外丢失重要资料;另外还要仔细阅读相关文档了解潜在风险因素从而规避不必要的麻烦发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值