### 🤖 Assistant

以下是升级 Ubuntu 20.04.4 中 OpenSSH 版本的详细步骤，结合了公开资源和核心技术要点：

---

### **核心步骤概览**
1. **依赖准备**  
   - 升级前需同步更新 OpenSSL（OpenSSH 的加密依赖）：
     ```bash
     wget https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz
     tar -zxvf openssl-3.0.16.tar.gz
     cd openssl-3.0.16
     ./config --prefix=/usr/local/openssl --shared  # 关键参数 `--shared`
     make && make install
     ```
     需手动链接库文件（解决动态库路径问题）：
     ```bash
     ln -s /usr/local/include/openssl /usr/include/openssl
     ln -sf /usr/local/lib64/libssl.so /usr/local/openssl/lib64/libssl.so
     echo "/usr/local/openssl/lib64" > /etc/ld.so.conf.d/openssl.conf
     ldconfig  # 更新库缓存
     ```
     来源：[<sup>1</sup>](https://blog.csdn.net/weixin_44293618/article/details/128096741)、[<sup>2</sup>](https://www.cnblogs.com/subsea/p/17682962.html)
   链接openssl的二进制文件
- ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

2. **升级 OpenSSH**  
   - 下载并编译最新版 OpenSSH（如 9.3p2）：
     ```bash
     wget https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
     tar -zxvf openssh-9.3p2.tar.gz
     cd openssh-9.3p2
     ./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl
     make && make install
     ```
   - 替换系统默认二进制文件：
     ```bash
     mv /usr/bin/ssh /usr/bin/ssh.bak
     ln -s /usr/local/openssh/bin/ssh /usr/bin/ssh
     ```

3. **服务配置与测试**  
   - 重启 SSH 服务并验证版本：
     ```bash
     systemctl restart sshd
     ssh -V  # 应显示新版本号
     ```
   - **注意事项**：
     - 操作前确保通过 `telnet` 或本地终端保持会话，避免升级失败导致无法远程连接（参考 [<sup>3</sup>](https://blog.csdn.net/lqh_linux/article/details/128796892)）。
     - 若遇到 `known_hosts` 报错，可清除 `~/.ssh/known_hosts` 中对应 IP 的记录（[深信服社区](https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=128631)）。

---

### **常见问题解决**
- **符号链接错误**：  
  若报错 `relocation error: symbol EVP_mdc2 not defined`，检查 OpenSSL 库路径是否正确链接，并重新执行 `ldconfig`（[<sup>2</sup>](https://www.cnblogs.com/subsea/p/17682962.html)）。
  
- **权限问题**：  
  升级后若无法 root 登录，需修改 `/etc/ssh/sshd_config` 中的 `PermitRootLogin yes` 并重启服务（[<sup>4</sup>](https://www.cnblogs.com/miaojx/p/14713244.html)）。

---

### **总结**
- 核心依赖：升级 OpenSSL 时务必使用 `--shared` 参数并正确配置库路径。
- 风险控制：保留备份会话，避免升级中断导致失联。
- 验证方式：通过 `ssh -V` 和实际连接测试确认版本更新。

如需更详细的配置参数或故障排查，可参考上述来源链接。