介绍
首次创建新的 Debian 10 服务器时,您应该尽早执行一些配置步骤,作为初始设置的一部分。这将提高服务器的安全性和易用性,并为后续操作奠定坚实的基础。.
在本教程中,我们将学习如何以 root 用户身份登录到我们的服务器,创建一个具有管理权限的新用户,并设置一个基本的防火墙。.
步骤 1 – 以 root 用户身份登录
要登录您的服务器,您需要知道服务器的公网 IP 地址。您还需要 root 用户帐户的密码,或者如果您已安装 SSH 密钥进行身份验证,则需要 root 用户帐户的私钥。如果您之前没有登录过服务器,建议您参考我们的 SSH 连接指南,其中详细介绍了此过程。.
如果您尚未连接到服务器,请使用以下命令以 root 用户身份登录(将命令中突出显示的部分替换为您服务器的公共 IP 地址):
ssh root@your_server_ip如果出现主机凭据警告,请接受。如果您使用密码验证,请输入您的 root 密码登录。如果您使用的是受密码保护的 SSH 密钥,则在您首次使用该密钥时,系统可能会提示您输入密码。如果您是首次使用密码登录服务器,系统可能会提示您更改 root 密码。.
关于根
root 用户是 Linux 环境中的管理员用户,拥有非常广泛的权限。由于 root 账户权限过高,因此不建议您经常使用它。这是因为 root 账户的强大之处在于,即使是无意中,它也能造成极大的破坏性更改。.
下一步是设置一个权限较低的备用账户,用于日常任务。稍后,我们将解释如何在需要时获取更多权限。.
步骤 2 – 创建新用户
以 root 用户身份登录后,我们就可以添加一个新的用户帐户,以后我们将使用该帐户登录。.
这个例子创建了一个名为 sammy 的新用户,但你应该将其替换为你喜欢的用户名:
adduser sammy您将被问到几个问题,首先是账户密码。.
请输入强密码,如有需要,还可以填写其他信息。这不是必填项,您可以直接在想要跳过的字段中按回车键。.
接下来,我们将为这个新用户设置管理员权限。.
步骤 3 – 授予管理员权限
我们已创建了一个具有常规账户权限的新用户账户。但是,我们有时可能需要使用该账户执行一些管理任务。.
为了避免必须先注销普通用户账户再重新登录主账户,我们可以为普通账户设置超级用户或root权限。这样,普通用户就可以通过在命令前加上sudo前缀来运行具有管理员权限的命令。.
要为新用户添加这些权限,我们需要将新用户添加到 sudo 组。在 Debian 10 中,默认情况下,属于 sudo 组的用户可以使用 sudo 命令。.
以 root 用户身份运行以下命令,将新用户添加到 sudo 组(将高亮显示的单词替换为您的新用户名):
usermod -aG sudo sammy现在,当您以普通用户身份登录时,可以在命令前输入 sudo 以使用超级用户权限运行命令。.
第四步 – 设置基本防火墙
Debian 服务器可以使用防火墙来确保只允许对特定服务的特定连接。在本指南中,我们将安装和使用 UFW 防火墙来帮助您设置防火墙策略和管理例外情况。.
我们可以使用 apt 软件包管理器来安装 UFW。刷新本地目录以获取可用软件包的最新信息,然后输入以下命令安装 UFW 防火墙软件:
apt update
apt install ufw防火墙配置文件允许 UFW 管理已安装应用程序的指定防火墙规则集。一些常用软件的配置文件默认包含在 UFW 中,软件包也可以在安装过程中向 UFW 注册其他配置文件。OpenSSH 服务(我们现在使用该服务连接到服务器)就有一个可供我们使用的防火墙配置文件。.
您可以通过输入以下内容列出所有可用的应用程序配置文件:
ufw app list
Output
Available applications:
. . .
OpenSSH
. . .我们需要确保防火墙允许 SSH 连接,以便下次能够再次登录。我们可以通过输入以下命令来允许这些连接:
ufw allow OpenSSH之后,我们可以通过输入以下命令启用防火墙:
ufw enable输入 y 并按回车键继续。您可以通过输入以下命令查看 SSH 连接是否仍然允许:
ufw statusOutput
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)由于防火墙目前阻止除 SSH 以外的所有连接,如果您安装并配置了其他服务,则需要调整防火墙设置以允许相应的流量通过。您可以在我们的 UFW 基本指南中了解一些常见的 UFW 操作。.
步骤 5 – 为您的普通用户启用外部访问权限
现在我们有了日常使用的常规用户,我们需要确保能够通过 SSH 直接登录到该帐户。.
为新用户配置 SSH 访问权限的过程取决于服务器的 root 帐户是使用密码还是 SSH 密钥进行身份验证。.
如果 root 帐户使用密码验证
如果您使用密码登录了主帐户,则 SSH 已启用密码验证。您可以通过打开一个新的终端会话并使用新用户名通过 SSH 连接到您的新帐户:
ssh sammy@your_server_ip输入您的常规用户密码后,即可登录。请记住,如果您需要以管理员权限运行命令,请在命令前输入 sudo,如下所示:
sudo command_to_run在任何会话中首次使用 sudo 时(以及之后定期使用 sudo 时),系统会提示您输入常规用户密码。.
为了提高服务器安全性,我们强烈建议您设置 SSH 密钥,而不是使用密码验证。请参考我们在 Debian 10 上设置 SSH 密钥的指南,了解如何配置基于密钥的身份验证。.
如果 root 账户使用 SSH 密钥身份验证
如果您使用 SSH 密钥登录主帐户,则 SSH 密码验证将被禁用。您需要将本地公钥的副本添加到新用户的 ~/.ssh/authorized_keys 文件中才能成功登录。.
由于您的公钥已存在于服务器上 root 账户的 ~/.ssh/authorized_keys 文件中,我们可以使用 cp 命令将该文件和目录结构复制到当前会话中的新用户账户。之后,我们可以使用 chown 命令设置文件的所有权。.
请务必将以下命令中高亮显示的部分替换为您的常用用户名:
cp -r ~/.ssh /home/sammy
chown -R sammy:sammy /home/sammy/.sshcp -r 命令会将整个目录复制到新用户的主目录,而 chown -R 命令会将该目录(及其中的所有内容)的所有者更改为指定的用户名:组名(Debian 会创建一个同名的组。默认情况下,该组的名称与您的用户名相同)。.
现在,打开一个新的终端会话,并使用您的新用户名通过 SSH 登录:
ssh sammy@your_server_ip您应该无需密码即可登录新帐户。请记住,如果您需要以管理员权限运行命令,请在命令前输入 sudo,如下所示:
sudo command_to_run在任何会话中首次使用 sudo 时(以及之后定期使用 sudo 时),系统会提示您输入常规用户密码。.
结果
至此,您的服务器已经拥有了坚实的基础。现在,您可以在服务器上安装所需的任何软件。.









