介绍
当您首次创建新的Ubuntu 20.04服务器时,您应该执行一些重要的配置步骤作为初始设置的一部分。这些步骤将提高服务器的安全性和可用性,并为后续操作打下坚实的基础。
当您创建一个DigitalOcean Droplet时,您可以选择一个Ubuntu版本,它将自动添加到您的新Droplet中。使用我们的开箱即用的解决方案简化您的设置。
第1步 — 登录为root用户
要登录到您的服务器,您需要知道您的服务器的公共IP地址。您还需要密码或者(如果您安装了用于身份验证的SSH密钥)root用户帐户的私钥。如果您还没有登录到服务器,您可能想要查看我们关于如何使用SSH连接到Droplets的指南,该指南详细介绍了此过程。
如果您尚未连接到服务器,请立即使用以下命令以root用户身份登录(用您服务器的公共IP地址替换命令中的突出部分):
如果出现有关主机真实性的警告,请接受。如果您使用密码身份验证,请提供您的root密码进行登录。如果您使用的是受密码保护的SSH密钥,则可能会在每个会话的第一次使用密钥时提示您输入密码。如果这是您首次使用密码登录服务器,则还可能提示您更改root密码。
关于root
root用户是Linux环境中具有非常广泛特权的管理用户。由于root帐户的特权增加,建议您不要经常使用它。这是因为root帐户甚至可能会因意外而进行非常破坏性的更改。
下一步是设置一个带有日常使用的降低特权的新用户帐户。稍后,我们将向您展示如何在需要时临时获得增加的特权。
第2步 —— 创建新用户
一旦您以 root 身份登录,您将能够添加新用户账户。将来,我们将使用这个新账户登录,而不是 root。
此示例创建了一个名为 sammy 的新用户,但您应该用您喜欢的用户名替换它:
您将被问及一些问题,首先是账户密码。
输入一个强密码,并可选择填写任何您想填写的额外信息。这不是必需的,您可以在任何您想跳过的字段中只按 ENTER
键。
步骤 3 — 授予管理员权限
现在我们有了一个具有常规账户权限的新用户账户。但是,有时我们可能需要执行管理员任务。
为了避免不得不退出我们的普通用户,然后以 root 账户重新登录,我们可以设置所谓的 超级用户 或 root 权限给我们的普通账户。这将允许我们的普通用户在命令前加上单词 sudo
以具有管理员权限运行命令。
为了将这些权限添加到我们的新用户,我们需要将用户添加到 sudo 组中。在Ubuntu 20.04上,默认情况下,属于 sudo 组的用户被允许使用 sudo
命令。
作为root用户,运行以下命令将您的新用户添加到sudo组中(用您的新用户名替换高亮显示的用户名):
现在,当以您的常规用户身份登录时,您可以在命令前键入sudo
以以超级用户权限运行它们。
步骤 4 — 设置基本防火墙
Ubuntu 20.04 服务器可以使用 UFW 防火墙来确保仅允许与某些服务的连接。我们可以使用该应用程序设置一个基本防火墙。
注意: 如果您的服务器正在运行于 DigitalOcean,您可以选择使用DigitalOcean 云防火墙而不是 UFW 防火墙。我们建议一次仅使用一个防火墙,以避免可能难以调试的冲突规则。
应用程序可以在安装时向 UFW 注册其配置文件。这些配置文件允许 UFW 通过名称管理这些应用程序。OpenSSH,允许我们现在连接到服务器的服务,已在 UFW 中注册了配置文件。
您可以通过输入以下命令查看:
OutputAvailable applications:
OpenSSH
我们需要确保防火墙允许 SSH 连接,以便我们下次可以登录。我们可以通过输入以下命令来允许这些连接:
之后,我们可以通过输入以下命令来启用防火墙:
输入y
并按ENTER
键继续。您可以看到SSH连接仍然被允许,方法是:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
由于防火墙当前阻止除SSH之外的所有连接,如果您安装和配置了其他服务,则需要调整防火墙设置以允许流量进入。您可以在我们的UFW基础知识指南中了解一些常见的UFW操作。
步骤5 —— 为您的常规用户启用外部访问
现在我们有了一个用于日常使用的常规用户,我们需要确保可以直接SSH到该帐户。
注意:在验证您可以使用新用户登录并使用sudo
之前,我们建议保持以root用户登录。这样,如果出现问题,您可以作为root进行故障排除和必要的更改。如果您使用的是DigitalOcean Droplet并且遇到了与您的root SSH连接相关的问题,您可以使用恢复控制台重新访问Droplets。
为您的新用户配置SSH访问的过程取决于您服务器的root帐户是使用密码还是SSH密钥进行身份验证。
如果根帐户使用密码验证
如果您使用密码登录到您的根帐户,则SSH的密码验证已启用。您可以通过打开新的终端会话并使用新用户名进行SSH登录到新用户帐户:
输入您常规用户的密码后,您将登录成功。请记住,如果您需要以管理员权限运行命令,请在其前面键入sudo
,如下所示:
在每个会话的第一次(以及之后的一段时间内),使用sudo
时将提示您输入常规用户密码。
为了增强服务器的安全性,我们强烈建议设置SSH密钥而不是使用密码验证。请按照我们在Ubuntu 20.04上设置SSH密钥的指南学习如何配置基于密钥的验证。
如果根帐户使用SSH密钥验证
如果您使用 SSH 密钥登录您的 root 帐户 ,那么 SSH 的密码验证将被 禁用。您需要将本地公钥的副本添加到新用户的 ~/.ssh/authorized_keys
文件中,以成功登录。
由于您的公钥已经存在于服务器上 root 帐户的 ~/.ssh/authorized_keys
文件中,我们可以在现有会话中将该文件和目录结构复制到我们的新用户帐户。
使用 rsync
命令以正确的所有权和权限复制文件是最简单的方法。这将复制 root 用户的 .ssh
目录,保留权限,并修改文件所有者,所有操作一次完成。确保更改下面命令中突出显示的部分以匹配您的常规用户名:
注意: rsync
命令会以不带斜杠的形式处理以及以斜杠结尾的源和目标。在使用下面的 rsync
时,请确保源目录(~/.ssh
)不包含 尾随斜杠(检查以确保您未使用 ~/.ssh/
)。
如果您不小心向命令添加了尾随斜杠,则 rsync
将会将 root 帐户的 ~/.ssh
目录的 内容 复制到 sudo
用户的主目录,而不是复制整个 ~/.ssh
目录结构。文件将处于错误位置,SSH 将无法找到并使用它们。
现在,在本地机器上打开一个新的终端会话,并使用你的新用户名使用SSH:
你应该已经登录到新的用户账户而无需使用密码。记住,如果你需要以管理员权限运行命令,像这样在命令前加上sudo
:
当每个会话中首次使用sudo
(以及之后定期)时,你将被提示输入常规用户密码。
接下来该做什么?
此时,你已经为服务器搭建了一个坚实的基础。你现在可以在服务器上安装任何你需要的软件。
Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-20-04