手把手教你用yum在openEuler上安全升级OpenSSH 10.0p1(附完整命令集)
手把手教你用yum在openEuler上安全升级OpenSSH 10.0p1附完整命令集最近在维护openEuler服务器时发现系统自带的OpenSSH版本存在一些已知的安全漏洞。作为系统管理员我深知SSH服务的安全性直接关系到整个服务器的访问安全。经过多次实践我总结出一套在openEuler系统上使用yum命令安全升级OpenSSH到10.0p1版本的完整方案特别适合刚接触openEuler的开发者或系统管理员参考使用。1. 升级前的准备工作在开始升级之前我们需要做好充分的准备工作这可以避免很多潜在的问题。首先确认你的openEuler系统版本cat /etc/os-release典型的输出可能如下NAMEopenEuler VERSION24.03 (LTS-SP2) IDopenEuler VERSION_ID24.03 PRETTY_NAMEopenEuler 24.03 (LTS-SP2)接下来检查当前系统中安装的OpenSSH和OpenSSL版本ssh -V输出示例OpenSSH_9.6p1, OpenSSL 3.0.12 24 Oct 2023重要准备工作清单确保你有root权限或sudo权限备份重要的SSH配置文件/etc/ssh/sshd_config准备一个备用连接方式如控制台访问以防SSH升级失败检查系统磁盘空间至少需要500MB空闲空间提示建议在系统负载较低的时段进行升级操作避免影响正常服务。2. 解决潜在的兼容性问题在openEuler上升级OpenSSH可能会遇到一些特有的兼容性问题这里我分享几个实际遇到的坑和解决方案。2.1 SELinux权限问题升级后重启sshd服务时可能会遇到/bin/bash权限不足的错误。这是因为SELinux的安全策略导致的。解决方法vi /etc/selinux/config将SELINUXenforcing修改为SELINUXdisabled然后重启系统使更改生效。2.2 OpenSSL兼容性问题如果你同时升级了OpenSSL可能会遇到yum命令无法使用的问题错误信息类似ImportError: /usr/lib64/libldap.so.2:undefined symbol: EVP_md2, version OPENSSL_3.0.0解决方案有两种方案一临时取消新版本引用unset LD_LIBRARY_PATH方案二保持OpenSSL版本不变 openEuler 24.03自带的OpenSSL 3.0.12已经足够新不建议升级到3.4.x版本只需升级OpenSSH即可。3. 安装必要依赖在开始编译安装OpenSSH之前我们需要确保系统已安装所有必要的依赖包yum install openssl-devel gcc pam-devel zlib-devel -y这个命令会安装openssl-develOpenSSL开发库gccGNU编译器集合pam-develPAM可插拔认证模块开发文件zlib-develzlib压缩库开发文件安装完成后建议验证一下这些包是否安装成功rpm -q openssl-devel gcc pam-devel zlib-devel4. 编译安装OpenSSH 10.0p1现在我们可以开始编译安装OpenSSH 10.0p1了。首先下载源代码包wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz tar -xzf openssh-10.0p1.tar.gz cd openssh-10.0p1接下来是关键的配置步骤。我推荐使用以下配置参数./configure \ --prefix/usr/local/openssh-10.0p1 \ --sysconfdir/etc/ssh \ --with-pam \ --with-ssl-dir/usr \ --with-zlib/usr \ --without-hardening配置参数说明参数说明--prefix指定安装目录--sysconfdir指定配置文件目录--with-pam启用PAM支持--with-ssl-dir指定OpenSSL库位置--with-zlib指定zlib库位置--without-hardening禁用某些安全强化选项避免兼容性问题配置完成后开始编译和安装make make install这个过程可能需要几分钟时间取决于你的系统性能。5. 配置和权限设置安装完成后需要进行一些必要的配置和权限设置。首先确保关键文件的权限正确chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key然后编辑SSH配置文件注释掉一些可能引起问题的选项vi /etc/ssh/sshd_config找到以下两行并注释掉#GSSAPIAuthentication yes #GSSAPICleanupCredentials no接下来我们需要创建符号链接将新安装的OpenSSH二进制文件链接到系统路径ln -sf /usr/local/openssh-10.0p1/bin/scp /usr/bin/scp ln -sf /usr/local/openssh-10.0p1/bin/sftp /usr/bin/sftp ln -sf /usr/local/openssh-10.0p1/bin/ssh /usr/bin/ssh ln -sf /usr/local/openssh-10.0p1/bin/ssh-add /usr/bin/ssh-add ln -sf /usr/local/openssh-10.0p1/bin/ssh-agent /usr/bin/ssh-agent ln -sf /usr/local/openssh-10.0p1/bin/ssh-keygen /usr/bin/ssh-keygen ln -sf /usr/local/openssh-10.0p1/bin/ssh-keyscan /usr/bin/ssh-keyscan ln -sf /usr/local/openssh-10.0p1/sbin/sshd /usr/sbin/sshd6. 重启服务和验证所有配置完成后重启SSH服务systemctl restart sshd为了确保升级成功我们需要进行验证ssh -V应该看到类似输出OpenSSH_10.0p1, OpenSSL 3.0.12 24 Oct 2023同时尝试从另一台机器SSH连接到服务器确认连接正常。7. 完整命令集合为了便于参考以下是整个升级过程的完整命令集合# 准备工作 cat /etc/os-release ssh -V vi /etc/selinux/config # 设置SELINUXdisabled # 安装依赖 yum install openssl-devel gcc pam-devel zlib-devel -y # 下载并解压OpenSSH wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz tar -xzf openssh-10.0p1.tar.gz cd openssh-10.0p1 # 配置和编译 ./configure --prefix/usr/local/openssh-10.0p1 --sysconfdir/etc/ssh --with-pam --with-ssl-dir/usr --with-zlib/usr --without-hardening make make install # 权限设置 chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key # 配置调整 vi /etc/ssh/sshd_config # 注释掉GSSAPI相关选项 # 创建符号链接 ln -sf /usr/local/openssh-10.0p1/bin/scp /usr/bin/scp ln -sf /usr/local/openssh-10.0p1/bin/sftp /usr/bin/sftp ln -sf /usr/local/openssh-10.0p1/bin/ssh /usr/bin/ssh ln -sf /usr/local/openssh-10.0p1/bin/ssh-add /usr/bin/ssh-add ln -sf /usr/local/openssh-10.0p1/bin/ssh-agent /usr/bin/ssh-agent ln -sf /usr/local/openssh-10.0p1/bin/ssh-keygen /usr/bin/ssh-keygen ln -sf /usr/local/openssh-10.0p1/bin/ssh-keyscan /usr/bin/ssh-keyscan ln -sf /usr/local/openssh-10.0p1/sbin/sshd /usr/sbin/sshd # 重启服务 systemctl restart sshd # 验证 ssh -V在实际操作中我发现如果在升级过程中遇到问题最有效的方法是仔细检查每一步的输出信息特别是configure和make阶段的错误提示。大多数问题都可以通过安装缺失的依赖包或调整配置参数来解决。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2434786.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!