介绍

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

第一步 – 根登录

要登录您的服务器,您需要知道服务器的公共 IP 地址和“root”用户帐户的密码,使用相应的SSH工具进行登录。

关于根

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

下一步是为日常工作设置一个影响范围较小的替代用户帐户。我们将教您如何在需要时获得更多特权。

第二步 – 创建一个新用户

一旦您以 身份登录 root,我们就准备添加我们将用于从现在开始登录的新用户帐户。

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

adduser demo

复制

接下来,为新用户分配一个密码(同样,用您刚刚创建的用户替换“demo”):

passwd demo

复制

输入一个强密码,然后再次重复以进行验证。

第三步 – 根权限

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

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

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

As root,运行此命令将您的新用户添加到wheel 组(用您的新用户替换突出显示的单词):

gpasswd -a demo wheel

复制

现在您的用户可以使用超级用户权限运行命令了!有关其工作原理的更多信息,请查看我们的 sudoers 教程

第四步 – 添加公钥认证(推荐)

保护服务器的下一步是为新用户设置公钥身份验证。进行此设置将通过要求使用私有 SSH 密钥登录来提高服务器的安全性。

生成密钥对

如果您还没有包含公钥和私钥的 SSH 密钥对,则需要生成一个。如果您已有要使用的密钥,请跳至复制公钥 步骤。

要生成新的密钥对,请在本地机器 的终端输入以下命令:

ssh-keygen

复制

假设您的本地用户名为“localuser”,您将看到如下所示的输出:

ssh-keygen outputGenerating public/private rsa key pair.
Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):

按回车接受此文件名和路径(或输入新名称)。

接下来,系统将提示您输入密码来保护密钥。您可以输入密码或将密码留空。

注意: 如果您将密码留空,您将能够使用私钥进行身份验证而无需输入密码。如果您输入密码,您将需要私钥 密码才能登录。使用密码保护您的密钥更安全,但两种方法都有其用途,并且比基本密码身份验证更安全。

这会在localuser的主目录的目录中生成一个私钥 id_rsa和一个公钥。请记住,不应与不应访问您的服务器的任何人共享私钥!id_rsa.pub`.ssh`

复制公钥

生成 SSH 密钥对后,您需要将公钥复制到新服务器。我们将介绍两种简单的方法来做到这一点。

注意ssh-copy-id如果在创建 Droplet 期间选择了 SSH 密钥,则该方法将不适用于 DigitalOcean。这是因为如果存在 SSH 密钥,DigitalOcean 会禁用密码验证,并且 ssh-copy-id依赖密码验证来复制密钥。

如果您使用 DigitalOcean 并在 Droplet 创建期间选择了 SSH 密钥,请改用选项 2

选项 1:使用 ssh-copy-id

如果您的本地机器 ssh-copy-id安装了该脚本,您可以使用它为您拥有登录凭据的任何用户安装您的公钥。

ssh-copy-id通过指定要安装密钥的服务器的用户和 IP 地址来运行脚本,如下所示:

ssh-copy-id demo@SERVER_IP_ADDRESS

复制

在提示下提供您的密码后,您的公钥将被添加到远程用户的 .ssh/authorized_keys文件中。现在可以使用相应的私钥登录服务器。

选项 2:手动安装密钥

假设您使用上一步生成了 SSH 密钥对,请在本地计算机的终端上 使用以下命令打印您的公钥 ( id_rsa.pub):

cat ~/.ssh/id_rsa.pub

复制

这应该打印您的公共 SSH 密钥,它应该如下所示:

id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf localuser@machine.local

选择公钥,并将其复制到剪贴板。

为新的远程用户添加公钥

要允许使用 SSH 密钥作为新的远程用户进行身份验证,您必须将公钥添加到用户主目录中的特殊文件中。

在服务器上 ,以 root用户身份输入以下命令切换到新用户(替换自己的用户名):

su - demo

复制

现在您将位于新用户的主目录中。

创建一个名为的新目录 .ssh并使用以下命令限制其权限:

mkdir .ssh
chmod 700 .ssh

复制

现在打开一个文件的.sshauthorized_keys用文本编辑器。我们将使用vi 来编辑文件:

vi .ssh/authorized_keys

复制

按 进入插入模式,i然后通过将其粘贴到编辑器中来输入您的公钥(应该在剪贴板中)。现在点击 ESC离开插入模式。

输入 :xthen ENTER以保存并退出文件。

现在使用以下命令限制authorized_keys 文件的权限:

chmod 600 .ssh/authorized_keys

复制

键入此命令一次 以返回给 root用户:

exit

复制

现在您可以 SSH 登录为您的新用户,使用私钥作为身份验证。

要了解有关密钥身份验证工作原理的更多信息,请阅读本教程:如何在 Linux 服务器上配置基于 SSH 密钥的身份验证

第五步 – 配置 SSH 守护进程

现在我们有了新帐户,我们可以通过修改其 SSH 守护程序配置(允许我们远程登录的程序)来保护我们的服务器,以禁止远程 SSH 访问root 帐户。

首先使用您的文本编辑器以 root 身份打开配置文件:

vi /etc/ssh/sshd_config

复制

在这里,我们可以选择通过 SSH 禁用 root 登录。这通常是一个更安全的设置,因为我们现在可以通过普通用户帐户访问我们的服务器,并在必要时提升权限。

要禁用远程 root 登录,我们需要找到如下所示的行:

/etc/ssh/sshd_config(之前)

#PermitRootLogin yes

复制

提示:要搜索这一行,输入 /PermitRoot然后点击 ENTER。这应该将光标带到该行上的“P”字符。

通过删除“#”符号来取消注释该行(按 Shift-x)。

现在按 将光标移动到“是” c

现在按 替换“是” cw,然后输入“否”。打 Escape,当你完成编辑。它应该是这样的:

/etc/ssh/sshd_config(之后)

PermitRootLogin no

复制

强烈建议在每台服务器上禁用远程 root 登录!

输入 :xthen ENTER以保存并退出文件。

重新加载 SSH

现在我们已经进行了更改,我们需要重新启动 SSH 服务,以便它使用我们的新配置。

键入以下内容以重新启动 SSH:

systemctl reload sshd

复制

现在,在我们注销服务器之前,我们应该测试 我们的新配置。在确认可以成功建立新连接之前,我们不想断开连接。

打开一个新的 终端窗口。在新窗口中,我们需要开始与服务器的新连接。这一次,我们不使用 root 帐户,而是使用我们创建的新帐户。

对于我们上面配置的服务器,使用此命令进行连接。在适当的地方替换您自己的信息:

ssh demo@SERVER_IP_ADDRESS

复制

注意: 如果您使用 PuTTY 连接到您的服务器,请确保更新会话的端口 号以匹配您服务器的当前配置。

系统将提示您输入您配置的新用户密码。之后,您将作为新用户登录。

请记住,如果您需要以 root 权限运行命令,请在它之前键入“sudo”,如下所示:

sudo command_to_run

复制

如果一切顺利,您可以通过键入以下内容退出会话:

exit

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

插入图片

评论(2)