介绍
当您首次创建一个新的Debian 8服务器时,有几个配置步骤,您应该尽早作为基本设置的一部分。这将增加服务器的安全性和可用性,并为后续操作提供坚实的基础。第一步 - Root登录
要登录到您的服务器,您需要知道您的服务器的公共IP地址和“root”用户帐户的密码。如果您尚未登录到你的服务器,你可能要遵循先教程在这个系列中, 如何连接到你的SSH Droplet ,这将详细介绍这个过程。 如果您尚未连接到你的服务器,继续前进,登录为root
使用以下命令(替换您的服务器的公网IP地址高亮显示的字)用户:
ssh root@SERVER_IP_ADDRESS
通过接受有关主机的真实性警告,如果出现的话,那么提供你的Root认证(密码或私钥)完成登录过程。如果您是第一次登录到服务器,使用密码,你也将被提示修改root密码。
关于Root
root用户是具有非常广泛特权的Linux环境中的管理用户。因为root帐户的更高权限的,你实际上是使用它定期 气馁 。这是因为固有的root帐户的权力的一部分,甚至是偶然做出极具破坏性的变化,能力。 下一步是设置一个替代用户帐户,减少日常工作的影响范围。我们会教你如何在你需要时获得更多的权限。第二步 - 创建新用户
一旦你登录为root
,我们准备补充一点,我们将使用从现在起登录的新用户帐户。 此示例创建一个名为“demo”的新用户,但您应该将其替换为您喜欢的用户名:
adduser demo
您会被问到几个问题,从帐户密码开始。 输入强密码,如果需要,可以选择填写任何附加信息。这不是必需的,你可以在任何你想跳过的字段中点击“ENTER”。
第三步 - Root特权
现在,我们有一个具有常规帐户权限的新用户帐户。但是,我们有时可能需要执行管理任务。 为了避免登录我们的普通用户并重新登录为root账号,我们可以设置所谓的“超级用户”或root权限为我们的普通帐户。这将使我们的普通用户通过字当头运行具有管理权限的命令sudo
每一个命令。
安装Sudo
Debian 8不附带sudo
安装,让我们用apt-get安装它。 首先,更新apt包的索引:
apt-get update
然后使用此命令安装sudo:
apt-get install sudo
现在,您可以使用
sudo
和
visudo
的命令。
授予Sudo特权
要向我们的新用户添加这些权限,我们需要将新用户添加到“sudo”组。默认情况下,在Debian 8,谁属于“命令”组中的用户被允许使用sudo
命令。 作为
root
,运行这个命令到新的用户加入到
Sudo组(替换用新的用户突出显示的单词):
usermod -a -G sudo demo
现在您的用户可以运行具有超级用户权限的命令!有关如何运作的更多信息,请查看
本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):
命中返回以接受此文件名和路径(或输入新名称)。 接下来,系统将提示您输入密码以确保密钥安全。您可以输入密码或将密码留空。
注:如果您离开了密码为空,你将能够使用认证私钥,而无需输入密码。 如果输入的密码,则需要两个私钥
和密码进行登录。使用密码保护你的钥匙是更安全,但两种方法都有其用途,并且比基本密码验证更安全。 这将生成私钥
id_rsa
和公钥
id_rsa.pub
,在
.ssh
的
为localuser的主目录的目录。请记住,不应与不应访问您的服务器的任何人共享私钥!
复制公钥
生成SSH密钥对后,您需要将公钥复制到新服务器。我们将介绍两种简单的方法。选项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
现在名为
的.ssh打开文件
authorized_keys
用文本编辑器。 我们将使用
nano编辑文件:
nano .ssh/authorized_keys
现在,通过将其粘贴到编辑器中,插入您的公共密钥(应该在剪贴板中)。 打
CTRL-X
退出该文件,然后
Y
以保存您所做的更改,然后
ENTER
确认文件名。 现在限制使用此命令
authorized_keys文件的权限:
chmod 600 .ssh/authorized_keys
键入此命令
后返回到
root
用户:
exit
现在您可以SSH登录作为您的新用户,使用私钥作为身份验证。 要了解更多关于如何密钥认证工作,阅读本教程:
如何在Linux服务器上配置SSH密钥的验证 。
第五步 - 配置SSH
现在,我们有我们新的帐户,我们可以通过修改其SSH服务的配置,以禁止到 root帐户的远程SSH访问(这使我们能够远程登录程序),确保我们的服务器一点点。 首先以root身份用文本编辑器打开配置文件:nano /etc/ssh/sshd_config
在这里,我们可以选择通过SSH禁用root登录。这通常是一个更安全的环境,因为我们现在可以通过我们的普通用户帐户来访问我们的服务器,并在必要时提升权限。 要禁用远程Root登录,我们需要找到如下所示的行:
/ etc / ssh / sshd_config(before)
#PermitRootLogin yes
如果要禁用root登录,可以将此行修改为“no”:
/ etc / ssh / sshd_config(after)
PermitRootLogin no
强烈建议在每台服务器上禁用远程root用户登录! 当你完成更改,保存和使用,我们去了前面的方法关闭文件(
CTRL-X
然后
Y
,然后
ENTER
)。
重新加载SSH
现在我们已经进行了更改,我们需要重新启动SSH服务,以便它将使用我们的新配置。 键入此以重新启动SSH:systemctl restart ssh
现在,我们注销服务器之前,我们要
测试我们
的新配置。我们不想断开连接,直到我们确认可以成功建立新连接。 打开一个
新的终端窗口。在新窗口中,我们需要开始一个新的连接到我们的服务器。这一次,我们想使用我们创建的新帐户,而不是使用root帐户。
ssh demo@SERVER_IP_ADDRESS
系统将提示您输入您配置的新用户密码。之后,您将以您的新用户身份登录。 记住,如果你需要运行一个具有root权限的命令,在类似这样之前键入“sudo”:
sudo command_to_run
如果一切顺利,您可以通过键入以下内容退出会话:
exit