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

介绍

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

使用DigitalOcean应用平台从GitHub部署您的应用程序。让DigitalOcean专注于扩展您的应用。

步骤1 — 登录为root用户

要登录到您的服务器,您需要知道您的服务器的公共IP地址。如果您为身份验证安装了SSH密钥,则还需要root用户帐户的密码或私钥。如果您尚未登录到服务器,您可能需要查看我们关于如何使用SSH连接到Droplets的指南,该指南详细介绍了此过程。

如果您当前未连接到服务器,请使用以下命令以root用户身份登录。请将命令中突出显示的your_server_ip部分替换为您的服务器的公共IP地址:

  1. ssh root@your_server_ip

如果出现主机真实性的警告,请接受。如果您的服务器使用密码验证,请提供您的 root 密码以登录。如果您使用的是带有密码保护的 SSH 密钥,您可能需要在每个会话的第一次使用密钥时输入密码。如果这是您首次使用密码登录服务器,您可能还需要更改 root 密码。如果收到提示,请按照说明更改密码。

关于 root

root 用户是在 Linux 环境中具有提升权限的管理员用户。由于 root 帐户的权限提升,建议您不要经常使用它。root 帐户甚至可能会因意外而进行非常破坏性的更改。

接下来的步骤是设置一个新的用户帐户,该帐户具有日常使用的降低权限。稍后,我们将向您展示如何在需要时临时获得增加的权限。

步骤 2 —— 创建新用户

一旦您以 root 用户身份登录,您就可以添加新的用户帐户。将来,我们将使用此新帐户登录,而不是 root

这个例子创建了一个名为sammy的新用户,但你可以用你喜欢的用户名替换它:

  1. adduser sammy

你将被问到一些问题,首先是账户密码。

输入一个强密码,可选地,填写任何额外信息。这些信息不是必需的,你可以在想要跳过的任何字段中按ENTER

第三步 — 授予管理员权限

现在你有了一个具有常规账户权限的新用户账户。但是,有时您需要以root用户的身份执行管理任务。

为了避免注销你的常规用户并重新登录为root账户,您可以为用户的常规账户设置所谓的超级用户root权限。这些权限将允许您的普通用户通过在命令前加上sudo来以管理员权限运行命令。

为了将这些权限添加到您的新用户,您需要将用户添加到sudo系统组中。在Ubuntu 22.04上,默认情况下,属于sudo组的用户被允许使用sudo命令。

作为root用户,运行以下命令将您的新用户添加到sudo组(用您的新用户名替换突出显示的sammy用户名):

  1. usermod -aG sudo sammy

现在您可以在常规用户登录时在命令前输入sudo以使用超级用户权限运行它们。

步骤 4 — 设置防火墙

Ubuntu 22.04 服务器可以使用 UFW 防火墙来确保只允许对某些服务的连接。您可以使用这个应用程序设置一个基本的防火墙。

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

应用程序可以在安装时注册其 UFW 配置文件。这些配置文件允许 UFW 根据名称管理这些应用程序。OpenSSH,允许您连接到服务器的服务,已经在 UFW 中注册了配置文件。

您可以通过输入以下命令查看已安装的 UFW 配置文件列表:

  1. ufw app list
Output
Available applications: OpenSSH

您需要确保防火墙允许 SSH 连接,以便您下次可以登录到服务器。通过输入以下命令允许这些连接:

  1. ufw allow OpenSSH

现在通过输入以下命令启用防火墙:

  1. ufw enable

输入y并按ENTER以继续。您可以看到,SSH连接仍然被允许,通过输入:

  1. ufw status
Output
Status: 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密钥进行身份验证。

如果根帐户使用密码身份验证

如果您使用密码登录到您的root帐户,那么SSH密码身份验证已启用。您可以通过打开新的终端会话并使用SSH和您的新用户名SSH到您的新用户帐户:

  1. ssh sammy@your_server_ip

输入您的常规用户密码后,您将登录。请记住,如果您需要以管理员权限运行命令,请在其前面键入sudo,如下所示:

  1. sudo command_to_run

在每个会话中首次使用sudo时(以及之后定期),您将收到提示输入您的常规用户密码。

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

如果根帐户使用SSH密钥身份验证

如果您使用SSH密钥登录到您的root账户,则SSH的密码验证已被禁用。要使用SSH密钥登录到您的常规用户账户,您必须将本地公钥的副本添加到新用户的~/.ssh/authorized_keys文件中。

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

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

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

如果您意外地在命令中添加了尾部斜杠,则rsyncroot账户的~/.ssh目录的内容复制到sudo用户的主目录,而不是复制整个~/.ssh目录结构。文件将位于错误位置,SSH将无法找到并使用它们。

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

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

  1. ssh sammy@your_server_ip

您应该使用新的用户帐户连接到服务器,而无需使用密码。记住,如果您需要以管理员权限运行命令,请在命令前键入sudo,就像这样:

  1. sudo command_to_run

在每个会话的第一次(以及以后的一段时间)使用sudo时,您将被要求输入常规用户的密码。

接下来怎么办?

到目前为止,您的服务器已经有了一个坚实的基础。现在您可以在服务器上安装您需要的任何软件。

如果您想更熟悉 Linux 命令,您可以查看我们的Linux 命令行入门指南

Source:
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04