升级后运行的旧 SSH 服务器版本

Onf*_*ire 3 upgrade server ssh openssh sshd

我们有一个运行 16.04 的 Ubuntu 服务器,用于客户端网站。客户最近完成了安全审核,建议之一是将我们的 OpenSSH 版本至少更新到 7.4 版本,但 16.04 预装了 7.2。我尝试直接进行更新,但 7.2 是可用的最新版本,因此我们现在尝试手动安装 7.6。

我已经下载并安装了7.6,看起来运行良好:

sshd 
OpenSSH_7.6p1, OpenSSL 1.0.2g  1 Mar 2016
Run Code Online (Sandbox Code Playgroud)

但是,当远程连接或什至只是运行时,ssh -v localhost它会使用旧的 7.2 进行连接:

root@server-new:~# ssh -v localhost
...
debug1: Local version string SSH-2.0-OpenSSH_7.6
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 
Ubuntu-4ubuntu2.2
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 pat OpenSSH* compat 0x04000000
...
Run Code Online (Sandbox Code Playgroud)

这基本上是我经历过的过程,除了 7.6 包: https: //gist.github.com/techgaun/df66d37379df37838482c4c3470bc48e

我注意到安装目录现在不同了,以前是,/usr/sbin/ssh但现在是/usr/local/sbin/ssh

root@server-new:~# which sshd
/usr/local/sbin/sshd
root@server-new:~# which ssh
/usr/local/bin/ssh
Run Code Online (Sandbox Code Playgroud)

我确实更新了 /etc/init.d/ssh 和 /etc/init/ssh.conf 以使用新路径,但即使重新启动后,它似乎也没有太大区别。

我们做错了什么?我假设我们只需要指定在启动时使用 SSH 安装,但我不知道如何操作。

我发现了很多其他线程,但似乎没有任何帮助,例如

https://serverfault.com/questions/310384/problem-with-upgrading-openssh-to-the-latest-version

在 12.04 中更新 OpenSSH 服务器吗?

https://forums.cpanel.net/threads/whats-it-take-to-update-to-openssh-5-1-or-higher.170818/

谢谢

use*_*733 5

这是典型的“我想要 LTS 但我不想要 LTS”逻辑陷阱。

Ubuntu LTS 的目的之一是为您提供稳定性。Ubuntu 通过增加软件版本来实现这一点。当您决定使用 LTS 时,您将自己锁定在这些版本两年内不进行任何更改。

(如果这不是您想要的,请不要使用 LTS。)

有一个微小的例外:安全更新。Ubuntu 安全团队在不升级到下一个上游版本的情况下发布安全更新(当然,这会违反 LTS)。相反,他们修补源代码。

因此,当发现 OpenSSH 7.2 中的漏洞时,会发生两件事:

  1. OpenSSH 网站宣布大家应该立即升级到新的 OpenSSH 7.3

  2. 不过,Ubuntu 安全团队向您推送了 OpenSSH 7.2p2-4ubuntu2.2。

从安全角度来看,它们是相同的——所有相同的漏洞都已被修复。您的安全审核员只是没有意识到这一点。

您有三个选择:

  1. 坚持 LTS:您可以意识到审核员只是得到了错误的信息,对 Ubuntu 安全团队进行了一些研究,最终什么也不做......因为实际上不需要额外的安全操作。

  2. 关注审核员:您可以从 LTS 跳转到 Ubuntu 的正常 6 个月版本。如果版本升级改变了您的工作流程或生产系统,这可能意味着每六个月需要大量额外工作。

  3. 建立一个弗兰肯系统:这是两个世界中最糟糕的,风险更大,也更难维护。您可以尝试从 PPA 安装较新版本的 OpenSSH 或将较新版本的 Ubuntu 安装到较旧的 LTS 上。可能会破坏您的系统,也可能不会。可能会破坏未来的升级和安全更新,也可能不会。