SSH9.0 RPM安装包制作
cat > 01-ssh9.0-upgrade.sh << 'EOF' #!/bin/bash # 1. 安装依赖 yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz # 2. 创建安装目录 mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} # 3. 下载源码包 curl -O https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz \ && mv openssh-9.0p1.tar.gz /root/rpmbuild/SOURCES # 4. 解压配置文件 tar zxvf /root/rpmbuild/SOURCES/openssh-9.0p1.tar.gz -C /root/rpmbuild/SOURCES/ mv /root/rpmbuild/SOURCES/openssh-9.0p1 /root/rpmbuild/SPECS # 5. 配置spec编译文件 sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/openssh.spec sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/openssh.spec sed -i '/openssl-devel < 1.1/s/^/#/' /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/openssh.spec # 6. 编译RPM rpmbuild -bb /root/rpmbuild/SPECS/openssh-9.0p1/contrib/redhat/openssh.spec ll /root/rpmbuild/RPMS/x86_64/ # 7. 备份ssh mkdir /etc/sshconfig_backup cp /etc/ssh/sshd_config /etc/sshconfig_backup/ cp /etc/pam.d/sshd /etc/sshconfig_backup/pam.d_sshd cp -a /root/.ssh /etc/sshconfig_backup # 8. 升级SSH rpm -Uvh /root/rpmbuild/RPMS/x86_64/openssh*.rpm # 9. 恢复配置 \cp /etc/sshconfig_backup/sshd_config /etc/ssh/sshd_config \cp /etc/sshconfig_backup/pam.d_sshd /etc/pam.d/sshd # 9.1 并加上PermitRootLogin yes允许root用户登录 sed -i "s/#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config echo "KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1" >> /etc/ssh/sshd_config # 9.2 chmod 600 -R /etc/ssh/* # 10. 重启服务 rm -rf /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} systemctl restart sshd netstat -nltap | grep 22 EOF bash 01-ssh9.0-upgrade.sh