马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
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企服评测-应用市场 编辑提示 |