CentOS7.9安装OpenSSL 1.1.1t和OpenSSH9.9p1
 一、临时开启telnet登录方式,避免升级失败无法登录系统
 (注意telnet登录方式存在安全隐患,升级openssh相关服务后要记得关闭)
  
 1.安装telnet服务
 yum -y install xinetd telnet*
  
 2.允许root用户通过telnet登陆,编辑文件注释掉下面这行:
 vim /etc/pam.d/login
 #auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
  
 3.备份配置文件/etc/securetty
 cp /etc/securetty /etc/securetty.bak
  
 4.添加超级用户登陆设备至/etc/securetty文件:
 echo "pts/1" >> /etc/securetty
 echo "pts/2" >> /etc/securetty
 echo "pts/3" >> /etc/securetty
 echo "pts/4" >> /etc/securetty
 echo "pts/5" >> /etc/securetty
 echo "pts/6" >> /etc/securetty
 echo "pts/7" >> /etc/securetty
 echo "pts/8" >> /etc/securetty
 echo "pts/9" >> /etc/securetty
 echo "pts/10" >> /etc/securetty
  
 5.开启root用户远程登陆,编辑文件注释掉下面这行:
 vim /etc/pam.d/remote
 #auth required pam_securetty.so
  
 6.创建 Telnet 的 xinetd 配置文件,使用下面的命令创建并编辑/etc/xinetd.d/telnet文件:
 vim /etc/xinetd.d/telnet
  
 在文件中添加以下内容:
 # default: on
 # description: The telnet server serves telnet sessions; it uses \
 # unencrypted username/password pairs for authentication.
 service telnet
 {
         flags           = REUSE
         socket_type     = stream
         wait            = no
         user            = root
         server          = /usr/sbin/in.telnetd
         log_on_failure  += USERID
         disable         = no
 }
  
 编辑完成后,保存并退出。
  
 7.防火墙规则放行telnet默认端口23
 firewall-cmd --add-port=23/tcp --zone=public --permanent
 firewall-cmd --reload
  
 8.启动 xinetd 服务
 systemctl start xinetd
  
 9.如果要禁用telnet服务,执行如下操作:
 #停止telnet服务
 systemctl stop xinetd
 systemctl disable xinetd
 systemctl stop telnet.socket
#防火墙禁用端口
 firewall-cmd --remove-port=23/tcp --zone=public --permanent
 firewall-cmd --reload
  
 #编辑配置文件,恢复注释过的配置项:
 vim /etc/pam.d/login
 auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
  
  
 vim /etc/pam.d/remote
 auth required pam_securetty.so
 
 二、编译安装 OpenSSL 1.1.1t(全新安装)
1.下载依赖
 yum install -y gcc make perl zlib-devel
2.在进行升级操作之前,对现有的 OpenSSL 和 OpenSSH 配置文件进行备份,防止升级过程中出现问题导致配置丢失。
 cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
 cp /etc/ssh/ssh_config /etc/ssh/ssh_config.bak
 3.下载并解压(路径根据实际情况修改)
 mkdir -p /root/soft && cd /root/soft
 wget -O openssl-1.1.1t.tar.gz https://www.openssl.org/source/openssl-1.1.1t.tar.gz
 tar -xzf openssl-1.1.1t.tar.gz
  
 4.配置编译
 cd openssl-1.1.1t
 ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
 
 5.编译安装
 make -j$(nproc) 
 make install 
  
 6.验证安装结果
 ls -l /usr/local/openssl/{lib,include/openssl}
# 必须存在以下文件:
 lib/libssl.so.1.1
 lib/libcrypto.so.1.1
 
 7. 配置系统环境变量,让系统能够找到新安装的 OpenSSL 库
 echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openssl.conf
 ldconfig
8. 处理 SSH 配置文件过时的选项,编辑 /etc/ssh/sshd_config 文件,注释掉不支持的选项。
 vi /etc/ssh/sshd_config
  
 在文件中找到以下几行,在行首添加 # 进行注释:
 #GSSAPIAuthentication yes
 #GSSAPICleanupCredentials yes
 #UsePAM yes
  
 保存并退出文件。
9. 修正 SSH 主机密钥文件权限,将 SSH 主机密钥文件权限修改为 600,确保只有文件所有者可读写。
 chmod 600 /etc/ssh/ssh_host_rsa_key
 chmod 600 /etc/ssh/ssh_host_ecdsa_key
 chmod 600 /etc/ssh/ssh_host_ed25519_key
 三、编译 OpenSSH 9.9p1(绑定 OpenSSL 1.1.1t)
 1:下载安装包和编译
 cd /root/soft
 wget -O openssh-9.9p1.tar.gz  https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz
 tar -xzf openssh-9.9p1.tar.gz
 cd /root/soft/openssh-9.9p2
  
 #编译安装文件
 ./configure --with-ssl-dir=/usr/local/openssl --with-zlib --sysconfdir=/etc/ssh
  
 2.编译安装(含动态链接修复)
 make -j$(nproc) && make install
  
 # 永久生效动态链接(避免重启失效)
 echo '/usr/local/openssl-1.1.1t/lib' >> /etc/ld.so.conf.d/openssl-1.1.conf
# 验证 libssl.so.1.1 路径
 ldconfig -v 
  
3. 配置 SSH 服务,将原有的 SSH 服务配置文件替换为新安装的 OpenSSH 提供的配置文件,并设置权限。
 cp -f contrib/redhat/sshd.init /etc/init.d/sshd
 chmod +x /etc/init.d/sshd
 chkconfig --add sshd
4 启动 SSH 服务,启动 SSH 服务并设置为开机自启。
 systemctl start sshd
 systemctl enable sshd
  
 5. 验证版本,验证 OpenSSL 和 OpenSSH 是否成功升级到指定版本。
 /usr/local/openssl/bin/openssl version
 ssh -V
  
 6. 验证 SSH 服务,检查 SSH 服务是否正常运行。
 systemctl status sshd
最后要记得,按照前面步骤禁用telnet登录方式。
