69 lines
3.0 KiB
Markdown
69 lines
3.0 KiB
Markdown
### 🤖 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` 和实际连接测试确认版本更新。
|
||
|
||
如需更详细的配置参数或故障排查,可参考上述来源链接。 |