如何在Ubuntu上使用Canonical的Livepatch服务

想让关键的Linux内核补丁自动应用于您的Ubuntu系统-而无需重新启动您的计算机吗?我们将介绍如何使用Canonical的Livepatch服务来做到这一点。

什么是Livepatch?它是如何工作的?

正如Canonical的Dustin Kirkland几年前解释的那样,Canonical Livepatch使用标准Linux内核中内置的Kernel Live补丁技术。Canonical的Livepatch网站指出,美国电话电报公司(AT&T)、思科(Cisco)和沃尔玛(Walmart)等大公司都在使用它。

它最多可以在三台电脑上免费供个人使用--根据Kirkland的说法,这些电脑可以是“台式机、服务器、虚拟机或云实例”。有了付费的Ubuntu Advantage订阅,这些组织就可以在更多的系统上使用它。

内核补丁是必要的,但不方便

Linux内核补丁是不争的事实。在我们生活的这个相互连接的世界里,确保您的系统安全并安装最新补丁程序至关重要。但是,必须重新启动计算机才能应用内核补丁可能是一件痛苦的事情。特别是当计算机向用户提供某种服务时,您必须与他们协调或协商才能使服务脱机。这里有一个乘数。如果你维护几台Ubuntu机器,在某些情况下,你必须咬紧牙关,轮流做每一台机器。

Canonical Livepatch服务消除了让您的Ubuntu系统使用关键内核补丁保持最新的所有麻烦。它很容易设置-无论是通过图形方式还是从命令行-而且还可以减轻您的负担。

任何可以减少维护工作量、提高安全性和减少停机时间的东西都必须是一个有吸引力的提议,对吧?是的,但是有一些注意事项。

您必须使用长期支持(LTS)版本的Ubuntu,如16.04或18.04。最新的LTS版本是18.04,所以这就是我们在这里要使用的版本。 它必须是64位版本。 您必须运行Linux Kernel 4.4或更高版本。 您需要拥有Ubuntu One帐户。还记得他们吗?如果你没有Ubuntu one账户,你可以注册一个免费账户。 你可以免费使用Canonical Livepatch服务,但每个Ubuntu One账户只能有三台电脑。如果您必须维护三台以上的计算机,则需要额外的Ubuntu One帐户。 如果您有物理、虚拟或云托管的服务器需要管理,那么您需要成为Ubuntu Advantage客户。

获取Ubuntu One帐户

无论您是通过图形用户界面(GUI)还是通过命令行界面(CLI)设置Livepatch服务,您都必须拥有Ubuntu One帐户。这是必需的,因为Livepatch服务的操作依赖于发给您的私钥,并与您的Ubuntu One帐户捆绑在一起。

如果您使用GUI设置Livepatch服务,您将看不到您的密钥。它仍然是必需的和正在使用的,但都是在后台为您处理的。 如果您通过终端设置Livepatch服务,则需要将密钥从浏览器复制并粘贴到命令行。

如果你没有Ubuntu one账户,你可以免费创建一个。

以图形方式启用规范Livepatch服务

要启动图形设置界面,请按“超级”键。它位于大多数键盘左下角的“Control”和“Alt”键之间。搜索“livepatch”

当您看到Livepatch图标时,请单击该图标或按“Enter”。

“软件和更新”对话框窗口将出现,并选中Livepatch选项卡。点击“登录”按钮,系统会提醒您需要一个Ubuntu One帐户。

单击“登录/注册”按钮。

出现Ubuntu Single Sign-on Account(Ubuntu单点登录帐户)对话框窗口。Canonical交替使用术语“Ubuntu one”和“单点登录”。它们的意思是一样的。官方的“单点登录”被“Ubuntu One”取代,但这个旧名字依然存在。

输入您的帐户详细信息,然后单击“连接”按钮。如果尚未创建帐户,也可以使用此对话框窗口注册帐户。

系统将提示您输入密码。

输入您的密码,然后单击“身份验证”按钮。一个对话框窗口显示与您要使用的Ubuntu one帐户相关联的电子邮件地址。

确保它是正确的,然后单击“继续”按钮。

系统会再次要求您输入密码。几秒钟后,“软件和更新”对话框窗口中的Livepatch选项卡将更新,以显示Livepatch处于活动状态。

新的盾牌图标将出现在工具通知区域中,靠近网络、声音和电源图标。打勾的绿色圆圈告诉你一切都很好。单击该图标可访问菜单。

我们被告知Livepatch正在运行,目前没有更新。

“Livepatch设置”选项将在Livepatch选项卡中打开“软件和更新”对话框窗口。

就这样,你们都做完了。

使用CLI启用规范Livepatch服务

您将需要一个Ubuntu One帐户。如果您没有,您将有机会创建一个。它们是免费的,而且只需片刻。

我们需要执行的一些步骤是基于Web的,因此这不是一个真正的仅限CLI的方法。“我们首先访问Canonical Livepatch Service网页,以获取我们的密钥或”令牌“。

选择“Ubuntu User”单选按钮,然后单击“Get Your Livepatch Token”按钮。

系统会提示您登录您的Ubuntu One帐户。

如果您有帐户,请输入您用来设置帐户的电子邮件地址,然后选择“我有一个Ubuntu one帐户,我的密码是:”单选按钮。 如果您没有帐户,请输入您的电子邮件地址并选择“我没有Ubuntu One Account”单选按钮。我们将指导您完成帐户创建过程。

一旦您的Ubuntu one帐户通过验证,您将看到托管的实时内核补丁网页。您的钥匙将会显示出来。

使网页保持打开状态,并打开终端窗口。请在终端窗口中使用以下命令安装Livepatch服务守护程序:

sudo snap install canonical-livepatch

安装完成后,您需要启用该服务。您需要“托管实时内核补丁”网页中的密钥。

您需要将密钥复制并粘贴到命令行。突出显示网页上的键,右键单击它,然后从上下文菜单中选择“复制”。或者您可以突出显示该键,然后按“Ctrl+C”。

在终端窗口中键入以下命令,但不要按“Enter”。

sudo canonical-livepatch enable

然后键入空格,右键单击并从上下文菜单中选择“粘贴”。也可以按“Ctrl+Shift+V”。您应该会看到刚才键入的命令、一个空格和网页上的密钥。

在用来研究这篇文章的测试机上,它看起来是这样的:

按“回车”键。

相关:如何在Linux的Bash Shell复制和粘贴文本

如果一切顺利,您将看到来自Livepatch的验证消息,告诉您计算机已启用内核补丁。它还将显示另一个长密钥;这是“机器令牌”。

刚才发生的事情是:

您已经从Canonical获得了您的Livepatch密钥。 您可以在三台计算机上使用它。到目前为止,您已经在一台计算机上使用过它。 使用您的密钥为此计算机生成的机器令牌是此消息中显示的机器令牌。

如果您检查“软件和更新”对话框窗口中的Livepatch选项卡,您将看到Livepatch已启用并处于活动状态。

检查Livepatch的状态

您可以使用以下命令使Livepatch向您提供状态报告:

sudo canonical-livepatch status

状态报告包含:

客户端版本:Livepatch的软件版本。 体系结构:计算机的CPU体系结构。 CPU型号:计算机中中央处理器(CPU)的类型和型号。 Last-check:Livepatch上次检查是否有关键的内核更新可供下载的时间和日期。 启动时间:此计算机上次开机的时间。 正常运行时间:此计算机开机的持续时间。

状态块告诉我们:

内核:当前内核的版本。 Running:Livepatch是否正在运行。 checkState:Livepatch是否已检查内核补丁。 PatchState:是否有需要安装的关键内核补丁。 Version:需要应用的内核补丁(如果有的话)的版本。 修复:内核补丁中包含的修复。

正在强制Livepatch立即更新

Livepatch的全部意义在于提供托管更新服务,这意味着您不需要考虑它。都为你准备好了。但是,如果您愿意,可以使用以下命令强制Livepatch检查内核补丁(并应用找到的任何补丁):

sudo canonical-livepatch refresh

Livepatch会告诉您刷新前后的内核版本。在此示例中没有任何可应用的内容。

更少的摩擦,更多的安全

安全摩擦是与实现、使用或维护安全功能相关的痛苦或不便。如果摩擦太高,安全就会受到影响,因为该功能没有被使用或维护。Livepatch消除了应用关键内核更新时的所有摩擦,尽可能地保持内核的安全。

这是“赢了,赢了”的手写体。