介绍
当您第一次创建新的Ubuntu 18.04服务器时,您应该尽早完成一些配置步骤,作为基本设置的一部分。 这将增加服务器的安全性和可用性,并为后续操作奠定坚实的基础。
注意:下面的指南演示了如何手动完成我们为新的Ubuntu 18.04服务器推荐的步骤。 通过手动操作,可以学习一些基本的系统管理技巧,并充分理解服务器上正在采取的操作。 或者,如果您希望更快地启动并运行,您可以运行我们的初始服务器设置脚本 ,以自动完成这些步骤。
第一步 - 以root身份登录
要登录到您的服务器,您需要知道您的服务器的公共IP地址 。 您还需要密码,或者如果您安装了用于身份验证的SSH密钥,则需要root用户帐户的私钥。 如果您尚未登录您的服务器,您可能需要按照我们的指南, 了解如何使用SSH连接到您的Droplet ,详细介绍了此过程。
如果您尚未连接到服务器,请继续并使用以下命令以root用户身份登录(将命令的突出显示的部分替换为服务器的公共IP地址):
ssh root@your_server_ip
如果出现,请接受有关主机真实性的警告。 如果您使用的是密码验证,请提供您的root密码以进行登录。如果您使用的是受密码保护的SSH密钥,则可能会提示您在每次会话首次使用密钥时输入密码。 如果这是您第一次使用密码登录服务器,则可能还会提示您更改root密码。
关于Root
root用户是拥有非常广泛特权的Linux环境中的管理用户。 由于root帐户的权限较高,因此不鼓励您定期使用它。 这是因为根账户固有的部分权力是能够做出非常具有破坏性的变更,即使是意外。
下一步是为日常工作设置一个影响范围缩小的替代用户帐户。 我们会教你如何在你需要的时候获得更多的特权。
第二步 - 创建一个新用户
一旦以root身份登录,我们准备添加我们将用于从现在开始登录的新用户帐户。
这个例子创建了一个名为sammy的新用户,但是您应该用您喜欢的用户名替换它:
adduser sammy
您将被问到几个问题,从帐户密码开始。
输入一个强大的密码,如果需要,可以选择填写任何附加信息。 这不是必需的,你可以在你想跳过的任何字段中按ENTER
。
第三步 - 授予管理权限
现在,我们拥有一个拥有常规帐户权限的新用户帐户。 但是,我们有时可能需要执行管理任务。
为避免必须从我们的普通用户注销并以root帐户重新登录,我们可以为我们的普通帐户设置所谓的“超级用户”或root权限。 这将允许我们的普通用户通过在每个命令之前放置单词sudo
来以管理特权运行命令。
要将这些特权添加到我们的新用户,我们需要将新用户添加到sudo组。 默认情况下,在Ubuntu 18.04上,属于sudo组的用户可以使用sudo
命令。
以超级用户身份运行以下命令,将新用户添加到sudo组中(用新用户替换突出显示的单词):
usermod -aG sudo sammy
现在,当以普通用户身份登录时,可以在命令前键入sudo
以使用超级用户权限执行操作。
第四步 - 建立一个基本的防火墙
Ubuntu 18.04服务器可以使用UFW防火墙来确保只允许连接某些服务。 我们可以使用此应用程序非常轻松地设置基本防火墙。
注意:如果您的服务器在DigitalOcean上运行,则可以选择使用DigitalOcean云防火墙而不是UFW防火墙。 我们建议一次只使用一个防火墙,以避免可能难以调试的冲突规则。
不同的应用程序可以在安装后使用UFW注册其配置文件。 这些配置文件允许UFW按名称管理这些应用程序。 OpenSSH,允许我们现在连接到我们的服务器的服务,已经向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操作。
第五步 - 为普通用户启用外部访问
现在我们有一个常规用户可供日常使用,我们需要确保我们可以直接进入帐户。
注意:在验证您可以登录并使用sudo
和新用户之前,我们建议保持以root身份登录。 这样,如果您遇到问题,可以排除故障并以root身份进行必要的更改。 如果您使用的是DigitalOcean Droplet,并且遇到与根 SSH连接有关的问题,则可以使用DigitalOcean控制台登录Droplet 。
为新用户配置SSH访问的过程取决于您的服务器的root帐户是使用密码还是SSH密钥进行身份验证。
如果根帐户使用密码验证
如果您使用密码登录到您的root帐户,则为SSH启用密码验证。 您可以通过打开新的终端会话并使用新的用户名使用SSH来SSH到您的新用户帐户:
ssh sammy@your_server_ip
输入常规用户的密码后,您将登录。请记住,如果您需要运行具有管理权限的命令,请在它之前键入sudo
,如下所示:
sudo command_to_run
每次会话首次使用sudo
时(以及定期之后),系统会提示您输入常规用户密码。
为了增强服务器的安全性, 我们强烈建议您设置SSH密钥,而不是使用密码验证 。 按照我们在Ubuntu 18.04上设置SSH密钥的指南学习如何配置基于密钥的身份验证。
如果根帐户使用SSH密钥验证
如果您使用SSH密钥登录到root帐户,则SSH的密码验证功能处于禁用状态 。 您需要将本地公钥的副本添加到新用户的~/.ssh/authorized_keys
文件才能成功登录。
由于您的公钥已存在于服务器上的根帐户的~/.ssh/authorized_keys
文件中,我们可以将该文件和目录结构复制到我们现有会话中的新用户帐户。
使用正确的所有权和权限复制文件的最简单方法是使用rsync
命令。 这将复制root用户的.ssh
目录,保留权限并修改文件所有者,全部使用单个命令。 请确保更改以下命令的突出显示的部分以符合您的常规用户名称:
rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy
现在,打开一个新的终端会话,并用新的用户名使用SSH:
ssh sammy@your_server_ip
您应该登录到新的用户帐户而不使用密码。 请记住,如果您需要使用管理权限运行命令,请在它之前键入sudo
,如下所示:
sudo command_to_run
每次会话首次使用sudo
时(以及定期之后),系统会提示您输入常规用户密码。
然后去哪儿?
在这一点上,你有一个坚实的基础为您的服务器。 你现在可以在你的服务器上安装你需要的任何软件。