介绍
首次创建新的 Ubuntu 22.04 服务器时,您应该执行一些重要的配置步骤作为初始设置的一部分。 这些步骤将提高服务器的安全性和可用性,并为您后续操作奠定坚实的基础。
第 1 步 — 以 root 身份登录
要登录您的服务器,您需要知道您的 服务器的公共 IP 地址 。 如果您安装了用于身份验证的 SSH 密钥,您还需要 root 用户帐户的密码或私钥。 如果您还没有登录到您的服务器,您可能需要按照我们关于 如何使用 SSH 连接到 Droplets 的指南进行操作,该指南详细介绍了此过程。
如果您当前未连接到服务器,请使用以下命令以 root 用户身份登录。 将命令中突出显示的 your_server_ip
部分替换为您服务器的公共 IP 地址:
ssh root@your_server_ip
如果出现有关主机真实性的警告,请接受它。 如果您的服务器使用密码验证,请提供您的 root 密码进行登录。 如果您使用受密码保护的 SSH 密钥,您可能需要在每次会话第一次使用该密钥时输入密码。 如果这是您第一次使用密码登录服务器,您可能还需要更改 root 密码。 如果收到提示,请按照说明更改密码。
关于根
root 用户是 Linux 环境中具有提升权限的管理用户。 由于 root 帐户的特权更高,因此 不鼓励 定期使用它。 root 帐户可以做出非常具有破坏性的更改,即使是偶然的。
下一步是设置一个新的用户帐户,降低日常使用的权限。 稍后,我们将向您展示如何在需要时临时获得更多特权。
第 2 步 — 创建新用户
以 root 身份登录后,您将能够添加新用户帐户。 将来,我们将使用这个新帐户而不是 root 登录。
此示例创建一个名为 sammy 的新用户,但您应该将其替换为您喜欢的用户名:
adduser sammy
您将被问到几个问题,从帐户密码开始。
输入一个强密码,如果您愿意,可以选择填写任何附加信息。 此信息不是必需的,您可以在要跳过的任何字段中按 ENTER
。
第 3 步 — 授予管理权限
现在您有了一个具有常规帐户权限的新用户帐户。 但是,您有时需要以 root 用户身份执行管理任务。
为避免退出您的普通用户并以 root 帐户重新登录,您可以为您的用户设置所谓的 superuser 或 root 权限常规账户。 这些权限将允许您的普通用户通过在命令前加上单词 sudo
以管理权限运行命令。
要将这些权限添加到您的新用户,您需要将该用户添加到 sudo 系统组。 默认情况下,在 Ubuntu 22.04 上,属于 sudo 组的用户可以使用 sudo
命令。
作为 root,运行此命令将您的新用户添加到 sudo 组(用您的新用户替换突出显示的 sammy
用户名):
usermod -aG sudo sammy
现在,您可以在命令之前键入 sudo
以在以普通用户身份登录时以超级用户权限运行它们。
第 4 步 — 设置防火墙
Ubuntu 22.04 服务器可以使用 UFW 防火墙来确保只允许连接到某些服务。 您可以使用此应用程序设置基本防火墙。
注意: 如果您的服务器在 DigitalOcean 上运行,您可以选择使用 DigitalOcean Cloud Firewalls 代替 UFW 防火墙。 我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。
应用程序可以在安装时向 UFW 注册其配置文件。 这些配置文件允许 UFW 按名称管理这些应用程序。 OpenSSH 是一项允许您连接到服务器的服务,它有一个在 UFW 注册的配置文件。
您可以通过键入以下内容来检查已安装的 UFW 配置文件列表:
ufw app list
OutputAvailable applications: OpenSSH
您需要确保防火墙允许 SSH 连接,以便您下次可以登录服务器。 通过键入允许这些连接:
ufw allow OpenSSH
现在通过键入以下内容启用防火墙:
ufw enable
键入 y
并按 ENTER
继续。 您可以通过键入以下内容看到仍然允许 SSH 连接:
ufw status
OutputStatus: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
防火墙当前正在阻止除 SSH 之外的所有连接。 如果您安装和配置其他服务,则需要调整防火墙设置以允许新流量进入您的服务器。 您可以在我们的 UFW Essentials 指南 中了解一些常见的 UFW 操作。
第 5 步 — 为您的普通用户启用外部访问
现在您有一个日常使用的普通用户,您需要确保您可以直接通过 SSH 访问该帐户。
注意: 在验证您可以登录并与新用户一起使用 sudo
之前,我们建议您保持以 root 身份登录。 如果您在连接时遇到问题,您可以作为 root 进行故障排除并进行任何必要的更改。 如果您使用 DigitalOcean Droplet 并遇到 root SSH 连接问题,您可以 使用故障恢复控制台 重新获得对 Droplet 的访问权限。
为新用户配置 SSH 访问取决于服务器的 root 帐户是使用密码还是 SSH 密钥进行身份验证。
如果 root 帐户使用密码验证
如果您使用密码 登录到您的 root 帐户 ,那么密码身份验证是 启用 用于 SSH。 您可以通过打开一个新的终端会话并使用您的新用户名使用 SSH 来 SSH 到您的新用户帐户:
ssh sammy@your_server_ip
输入您的普通用户密码后,您将登录。 请记住,如果您需要以管理员权限运行命令,请在它之前键入 sudo
,如下所示:
sudo command_to_run
在每个会话第一次使用 sudo
时(之后定期),您将收到输入常规用户密码的提示。
为了增强服务器的安全性,我们强烈建议设置 SSH 密钥而不是使用密码验证。 按照我们的 在 Ubuntu 22.04 上设置 SSH 密钥的指南了解如何配置基于密钥的身份验证。
如果 root 帐户使用 SSH 密钥认证
如果您使用 SSH 密钥 登录到您的 root 帐户 ,那么 SSH 的密码验证是 禁用 。 要使用 SSH 密钥作为普通用户登录,您必须将本地公钥的副本添加到新用户的 ~/.ssh/authorized_keys
文件中。
由于您的公钥已经在服务器上的 root 帐户的 ~/.ssh/authorized_keys
文件中,因此您可以使用当前会话将该文件和目录结构复制到新用户帐户。
复制具有正确所有权和权限的文件的最简单方法是使用 rsync
命令。 此命令将复制 root 用户的 .ssh
目录、保留权限并修改文件所有者,所有这些都在一个命令中完成。 确保更改以下命令的突出显示部分以匹配您的常规用户名:
注意: rsync
命令对以斜杠结尾的源和目的地的处理方式与不以斜杠结尾的不同。 当使用下面的 rsync
时,请确保源目录 (~/.ssh
) 没有 包含尾部斜杠(检查以确保您没有使用 ~/.ssh/
)。
如果不小心在命令后面加了斜杠,rsync
会将root账户的~/.ssh
目录下的contents复制到[ X161X] 用户的主目录,而不是复制整个 ~/.ssh
目录结构。 这些文件将位于错误的位置,SSH 将无法找到和使用它们。
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
现在,在您的本地机器上打开一个新的终端会话,并使用您的新用户名使用 SSH:
ssh sammy@your_server_ip
您应该使用新用户帐户连接到您的服务器,而无需使用密码。 请记住,如果您需要以管理员权限运行命令,请在命令前键入 sudo
,如下所示:
sudo command_to_run
在每个会话第一次使用 sudo
时(之后定期),系统会提示您输入常规用户的密码。
然后去哪儿?
至此,您的服务器已经有了坚实的基础。 您现在可以在服务器上安装您需要的任何软件。
如果您想更熟悉 Linux 命令,可以查看我们的 Linux Command Line Primer。