专栏首页云计算教程系列使用Debian 8进行初始服务器设置
原创

使用Debian 8进行初始服务器设置

介绍

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

第一步 - 根登录

要登录您的服务器,您需要知道服务器的公共IP地址和“root”用户帐户的密码。

如果您尚未连接到服务器,请继续使用以下命令以root用户身份登录(用服务器的公共IP地址替换突出显示的单词):

ssh root@SERVER_IP_ADDRESS

通过接受有关主机真实性的警告(如果出现)完成登录过程,然后提供根身份验证(密码或私钥)。如果您是第一次使用密码登录服务器,系统还会提示您更改root密码。

关于Root

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

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

第二步 - 创建一个新用户

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

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

adduser demo

从帐户密码开始,您将被问到几个问题。

输入一个强密码,如果您愿意,还可以选择填写任何其他信息。这不是必需的,你可以在你想跳过的任何字段中点击“ENTER”。

第三步 - 根权限

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

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

安装Sudo

Debian 8没有用sudo安装,所以让我们用apt-get安装它。

首先,更新apt包索引:

apt-get update

然后使用此命令安装sudo:

apt-get install sudo

现在您可以使用sudovisudo命令。

批准 Sudo 权限

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

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

usermod -a -G sudo demo

现在您的用户可以使用超级用户权限运行命令了!

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

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

生成密钥对

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

要生成新密钥对,请在本地计算机的终端(即您的计算机)上输入以下命令:

ssh-keygen

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

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

点击返回接受此文件名和路径(或输入新名称)。

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

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

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

复制公钥

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

注意:如果在创建腾讯云CVM期间选择了SSH密钥,则ssh-copy-id方法将无法运行。这是因为如果存在SSH密钥,服务器将禁用密码验证,ssh-copy-id依赖密码验证来复制密钥。

如果您在创建腾讯云CVM期间选择了SSH密钥,请改用选项2。

选项1:使用ssh-copy-id

如果本地计算机安装了ssh-copy-id脚本,则可以使用它将公钥安装到您具有登录凭据的任何用户。

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

ssh-copy-id demo@SERVER_IP_ADDRESS

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

选项2:手动安装密钥

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

cat ~/.ssh/id_rsa.pub

这应该打印您的公共SSH密钥,它应该类似于以下内容:

ssh-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

现在打开一个用文本编辑器名为authorized_keys.ssh文件。我们将使用nano编辑文件:

nano .ssh/authorized_keys

现在通过将公钥粘贴到编辑器中来插入公钥(应该在剪贴板中)。

CTRL-X退出文件,再按Y保存您所做的更改,按ENTER确认文件名。

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

chmod 600 .ssh/authorized_keys

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

exit

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

第五步 - 配置SSH

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

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

nano /etc/ssh/sshd_config

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

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

#PermitRootLogin yes

如果要禁用root登录,可以将此行修改为“no”:

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

然后去哪儿?

此时,您拥有Debian 8服务器的坚实基础。您现在可以在服务器上安装所需的任何软件。

想要了解更多关于初始服务器设置的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《Initial Server Setup with Debian 8》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu上创建Sudo用户[快速入门]

    该sudo命令提供了一种机制,用于向普通用户授予通常仅对root用户可用的管理员权限。本指南将向您展示在Ubuntu上创建具有sudo访问权限的新用户的最简单方...

    吴凌云
  • 如何在Ubuntu 18.04上安装Redis

    Redis是一个内存中的键值存储器,以其灵活性,性能和广泛的语言支持而闻名。它通常用作数据库,缓存和消息代理,并支持各种数据结构。

    吴凌云
  • 为公益伸出援手,自建 NTP 服务器池

    在本教程中,讲述如何设置了自己的时间服务器,并使其成为NTP池项目的成员,为社区服务,现在国内NTP服务器数量还是不够乐观,还是那句话,如果你有位于国内的、长期...

    吴凌云
  • Golang Leetcode 230. Kth Smallest Element in a BST.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89043444

    anakinsun
  • 二叉树高频题

    Given a binary tree, return the preorder traversal of its nodes' values.

    用户5934629
  • leecode刷题(24)-- 翻转二叉树

    二叉树问题,我们首先要想到的使用递归的方式来解决,有了这个思路,处理这道问题就很简单了:先互换根节点的左右节点,然后递归地处理左子树,再递归地处理右子树,直到所...

    希希里之海
  • [Linux] 设置默认python

    linux中往往会安装很多个版本的python, 所以会牵扯到默认python的设置问题. 主要是设置系统环境变量的问题.

    用户2398817
  • linux服务器预防SSH破解的办法

    1、linux服务器通过配置 /etc/hosts.deny 禁止对方IP通过SSH登录我的服务器

    习惯说一说
  • 【leetcode刷题】T129-翻转二叉树

    https://leetcode-cn.com/problems/invert-binary-tree/

    木又AI帮
  • BST & AVL 二分搜索树 & 平衡二叉树的实现原理

    本文完整的实现了基本的BST,由于注重的是逻辑和原理的实现,所以没有采用泛型。注意方法的访问修饰符。

    大学里的混子

扫码关注云+社区

领取腾讯云代金券