Ubuntu 22.04 升级openssh至最新版

[复制链接]
发表于 2026-10-3 20:56:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

Ubuntu 22.04 手动升级 OpenSSH 到最新版(源码编译方案)

Ubuntu 22.04 的 apt 源里 OpenSSH 版本偏旧,遇到 CVE 需要紧急修复、而官方 backport 还没跟上时,源码编译升级是最直接的补救手段。这条路不难,但有几个坑:必须先建 sshd 目录、必须先装编译依赖、configure 参数要对齐,否则 sshd 起来会报 privilege separation 权限错或者配置读不到。这篇把全流程写清楚。

一、安装依赖包

sudo apt update
sudo apt install build-essential zlib1g-dev libssl-dev -y
sudo apt install autoconf -y

后续 ./configure 还要 PAM、SELinux、Kerberos 的开发库,第 4 步里会一起装。

二、创建 sshd 运行目录

这一条很多人漏掉:SSH 的 privilege separation 需要 /var/lib/sshd 这个目录。没有它,装完 sshd 启动会报 privilege separation 相关的错误。

sudo mkdir /var/lib/sshd
sudo chmod -R 700 /var/lib/sshd/
sudo chown -R root:sys /var/lib/sshd/

三、下载 OpenSSH 最新版

去 cdn.openbsd.org 的 OpenSSH portable 目录选最新版本下载。以 9.7 为例:

sudo -i
cd /var/lib/sshd/
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz

⚠️ 注意:请把「9.7」换成你实际要装的稳定版本,别无脑照抄版本号——版本太新可能有回归问题,太旧就没修到漏洞,跟着 Debian/Ubuntu 安全公告走最稳。

四、解压并安装

sudo tar -zxf openssh-portable-V_9_3_P2.tar.gz s
cd openssh-9.7p1/
sudo autoreconf
sudo apt install libpam0g-dev libselinux1-dev libkrb5-dev -y
sudo ./configure --with-kerberos5 --with-md5-passwords --with-pam --with-selinux --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh
sudo make
sudo make install

参数说明

  • --with-privsep-path=/var/lib/sshd/:必须和第 2 步建的目录一致,这是踩坑重灾区;
  • --sysconfdir=/etc/ssh:配置文件仍在 /etc/ssh,保证你现有的 sshd_config、host key 全部沿用,不用重新配;
  • --with-pam / --with-selinux / --with-kerberos5:把 PAM、SELinux、Kerberos 支持编进去,和发行版行为对齐;
  • --with-md5-passwords:允许 MD5 口令加密,部分老系统用户库需要。

五、重启并验证

sudo systemctl restart ssh
sudo systemctl status ssh
ssh -V
sshd -v

ssh -V 看客户端版本,sshd -v 看服务端版本,status 确认是 active 而不是 failed。

六、升级 SSH 的三条铁律

  • 永远留一个在线会话:升级前先开一个别的终端保持连接,不要直接关当前窗口,避免配置错了被锁在门外;
  • 确认无密码登录可用:升级后立刻用另一台机器免密连一次,密钥登录正常才敢断开旧连接;
  • 先备份 sshd_config:cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak,编译版默认配置行为可能和 apt 版有细微差别。

七、能不编就不编:优先用官方包

源码编译是下策。正常情况下,用发行版的安全更新打补丁代价更小、更不容易把 sshd 弄坏:

sudo apt update && sudo apt install --only-upgrade openssh-server

只有在官方源确实没有修复版本时,才走上面这套编译流程。另外,比版本更根本的是把安全基线做好:禁 root 登录、只允许密钥认证、22 端口别裸奔到公网,配合 fail2ban 之类的防爆破工具——版本打了但口令弱,一样能被撞进来。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表