使用 Ubuntu 20.04 进行初始服务器设置

介绍

当您第一次创建新的 Ubuntu 20.04 服务器时,您应该执行一些重要的配置步骤作为基本设置的一部分。这些步骤将提高服务器的安全性和可用性,并为您的后续操作奠定坚实的基础。

步骤 1 — 以 root 身份登录

要登录您的服务器,您需要知道您服务器的公共 IP 地址您还需要密码或(如果您安装了用于身份验证的 SSH 密钥)root用户帐户的私钥如果您还没有登录到您的服务器,您可能需要遵循我们关于如何使用 SSH 连接到 Droplets 的指南,其中详细介绍了此过程。

如果您还没有连接到您的服务器,现在以root用户身份使用以下命令登录(用您服务器的公共 IP 地址替换该命令的突出显示部分):

  • ssh root@your_server_ip

如果出现有关主机真实性的警告,请接受。如果您使用密码验证,请提供您的root密码以登录。如果您使用受密码保护的 SSH 密钥,则每次会话第一次使用密钥时,系统可能会提示您输入密码。如果这是您第一次使用密码登录服务器,系统可能还会提示您更改root密码。

关于根

用户是在具有非常广泛的特权Linux环境中管理用户。由于root帐户具有更高的权限,因此不鼓励定期使用它。这是因为root帐户固有的部分权力是能够进行非常具有破坏性的更改,即使是偶然的。

下一步是设置一个新的用户帐户,以减少日常使用的权限。稍后,我们将教您如何仅在需要时获得更多权限。

步骤 2 — 创建新用户

root身份登录后,我们准备添加新用户帐户。将来,我们将使用这个新帐户而不是root登录

此示例创建了一个名为sammy的新用户,但您应该将其替换为您喜欢的用户名:

  • adduser sammy

您将被问到几个问题,首先是帐户密码。

输入一个强密码,并可以根据需要填写任何附加信息。这不是必需的,您可以点击ENTER任何您想跳过的字段。

步骤 3 — 授予管理权限

现在,我们有一个具有常规帐户权限的新用户帐户。但是,我们有时可能需要执行管理任务。

为了避免退出我们的普通用户并以root帐户重新登录,我们可以为我们的普通帐户设置所谓的超级用户root权限。这将允许我们的普通用户通过sudo在每个命令之前放置单词来运行具有管理权限的命令。

要将这些权限添加到我们的新用户,我们需要将该用户添加到sudo组。默认情况下,在 Ubuntu 20.04 上,允许属于sudo组的用户使用该sudo命令。

root身份运行此命令将您的新用户添加到sudo组(用您的新用户替换突出显示的用户名):

  • usermod -aG sudo sammy

现在,当以普通用户身份登录时,您可以键入sudobefore 命令以使用超级用户权限执行操作。

第 4 步 – 设置基本防火墙

Ubuntu 20.04 服务器可以使用 UFW 防火墙来确保只允许连接到某些服务。我们可以使用此应用程序非常轻松地设置基本防火墙。

注意:如果您的服务器在 DigitalOcean 上运行,您可以选择使用DigitalOcean Cloud Firewalls而不是 UFW 防火墙。我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。

应用程序可以在安装时向 UFW 注册他们的配置文件。这些配置文件允许 UFW 按名称管理这些应用程序。OpenSSH,允许我们现在连接到我们的服务器的服务,有一个在 UFW 注册的配置文件。

您可以通过键入以下内容来查看:

  • ufw app list
Output
Available applications: OpenSSH

我们需要确保防火墙允许 SSH 连接,以便我们下次可以重新登录。我们可以通过键入以下内容来允许这些连接:

  • ufw allow OpenSSH

之后,我们可以通过键入以下内容启用防火墙:

  • ufw enable

键入y并按ENTER继续。您可以通过键入以下内容看到仍然允许 SSH 连接:

  • ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)

由于防火墙当前阻止了除 SSH 之外的所有连接,如果您安装和配置其他服务,您将需要调整防火墙设置以允许流量进入。您可以在我们的UFW Essentials指南中了解一些常见的 UFW 操作

第 5 步 – 为您的普通用户启用外部访问

现在我们有一个日常使用的普通用户,我们需要确保我们可以直接通过 SSH 访问该帐户。

注意:在确认您可以登录并sudo与新用户一起使用之前,我们建议保持以root身份登录这样,如果您遇到问题,您可以以root身份进行故障排除并进行任何必要的更改如果您正在使用 DigitalOcean Droplet 并遇到SSH 连接问题,您可以使用 DigitalOcean 控制台登录 Droplet

为新用户配置 SSH 访问的过程取决于您服务器的root帐户是使用密码还是 SSH 密钥进行身份验证。

如果 root 帐户使用密码验证

如果您使用 password登录到您的root帐户则为 SSH启用密码身份验证您可以通过打开一个新的终端会话并使用新用户名使用 SSH 来 SSH 到您的新用户帐户:

  • ssh sammy@your_server_ip

输入您的普通用户密码后,您将登录。请记住,如果您需要以管理权限运行命令,请sudo在它之前键入如下:

  • sudo command_to_run

sudo每次会话第一次使用时(以及之后定期使用),系统会提示您输入常规用户密码

为了增强服务器的安全性,我们强烈建议设置 SSH 密钥而不是使用密码验证按照我们在 Ubuntu 20.04设置 SSH 密钥的指南,了解如何配置基于密钥的身份验证。

如果 Root 账户使用 SSH 密钥认证

如果您使用 SSH 密钥登录到您的帐户,则SSH 的密码验证将被禁用您需要将本地公钥的副本添加到新用户的~/.ssh/authorized_keys文件中才能成功登录。

由于您的公钥已经在服务器上root帐户的~/.ssh/authorized_keys文件中,我们可以将该文件和目录结构复制到我们现有会话中的新用户帐户中。

复制具有正确所有权和权限的文件的最简单方法是使用rsync命令。这将复制root用户的.ssh目录、保留权限并修改文件所有者,所有这些都在一个命令中。确保更改以下命令的突出显示部分以匹配您的常规用户名:

注意:rsync命令对以斜杠结尾的源和目标与没有斜杠的源和目标的处理方式不同。rsync下面使用时,请确保源目录 ( ~/.ssh)包含尾部斜杠(检查以确保您没有使用~/.ssh/)。

如果你不小心一个斜线添加到命令,rsync将复制的内容中的帐户的~/.ssh目录到sudo用户的主目录,而不是复制整个~/.ssh目录结构。这些文件将位于错误的位置,SSH 将无法找到和使用它们。

  • rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

现在,在您的本地机器上打开一个新的终端会话,并使用您的新用户名使用 SSH:

  • ssh sammy@your_server_ip

您应该在不使用密码的情况下登录到新用户帐户。请记住,如果您需要以管理权限运行命令,请sudo在它之前键入如下:

  • sudo command_to_run

sudo每次会话第一次使用时(以及之后定期使用),系统会提示您输入常规用户密码

然后去哪儿?

此时,您的服务器已经打下了坚实的基础。您现在可以在服务器上安装所需的任何软件。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁