如何初始化 Ubuntu 20.04 服务器配置及设置SSH登录

卡拉先生
发布于 2020年08月08日 | 上次编辑:2020年08月08日

Ubuntu 20.04 配置
Ubuntu 20.04 配置

前言

今天我们来学习如何设置 Ubuntu 20.04 的防火墙以及如何设置及使用 SSH 安全登录。在首次创建 Ubuntu 20.04 服务器时,我们应该在初始化时,就应该正确配置服务器,以保证服务器长期的安全及可用性。

第1步:以root身份登录

登录我们的远程服务器,首先需要知道这台服务器的公网IP地址以及账号密码。如果本地安装了用于识别身份的 SSH 密钥,我们也可以使用密钥来登录。

首先,我们来使用 SSH 最基本的方式登录远程服务器。

ssh root@your_server_ip

如果使用密码登录,请在提示下输入正确的密码。如果是第一次使用密码登录服务器,还会提示我们要更改 root 密码。

关于 root 管理员

root 用户拥有 Linux 超级管理员权限,由于 root 的超级权限,因此不建议经常使用它来进行操作。因为操作不好,会对系统严重的破坏性。

接下来,我们来一起创建一个日常用的账号,日常用账号权限有所限制,保证平日操作中即便有误操作也把风险控制在可控的范围内。

第2步:创建新用户

我们首先用 root 用户登录。本教程创建的用户名为 KalaSearch ,大家可以根据自己的习惯和喜好创建自己的用户名。

adduser KalaSearch

输出内容:

root@KalaSearch-server:~$ sudo adduser kala
[sudo] password for root:
Adding user `KalaSearch' ...
Adding new group `KalaSearch' (1002) ...
Adding new user `KalaSearch' (1002) with group `KalaSearch' ...
Creating home directory `/home/KalaSearch' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for kala
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] y

系统会询问我们关于这个账号的一些初始信息。我们需要输入一个强密码,剩下的根据自己的需要填写即可。

第3步:授权管理权限

现在我们拥有了一个常规权限的新账号。但有时,我们也需要高权限的命令。为了避免普通账号和 root 来回切换,我们可以给普通账号临时赋予超级权限。可以使用 sudo 命令来临时使用超级权限。

如果要把超级权限添加给我们刚创建的普通用户,要把这个用户添加到 sudo 组。默认情况下,在 Ubuntu 20.04 中,允许属于 sudo 组的用户使用 sudo 命令。

以 root 身份运行以下命令,将新用户添加到 sudo 组中。

usermod -aG sudo KalaSearch

现在,我们使用这个普通账号登录时,也可以使用 sudo 命令来执行超级管理员权限可执行的操作了。

第4步: 设置基本防火墙

Ubuntu 20.04 服务器可以使用 UFW 防火墙来确确保只有我们想要的服务可以连接到我们的服务器。

ufw app list

输出结果:

Available applications:
  OpenSSH

我们需要确保防火墙允许 SSH 连接。保证我们可以使用 SSH 重新登录我们的服务器。

ufw allow OpenSSH

接下来,我们通过以下命令开启服务器防火墙:

ufw enable

我们键入 Y 然后按回车继续。接下来我们通过以下命令查看 SSH 连接是否可以连接。

ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

由于防火墙允许除 SSH 以外的所有连接,因此,如果安装和配置其他服务,我们就要调整防火墙,以便让这些新增的服务可以连接我们的服务器。

Ubuntu 20.04 SSH登录
Ubuntu 20.04 SSH登录

第5步:为普通用户开启外部访问权限

现在我们有一个日常使用的普通用户,我们需要确保可以直接通过 SSH 直接登录用户。

为新用户配置 SSH 访问,有两种方式,一种使用密码登录,另一种使用 SSH 密钥登录。

使用密码登录 root 账户

如果我们使用密码登录 root 账户,那么我们为 SSH 启动密码身份验证。我们首先打开终端,并使用带有新用户名的命令,登录服务器。

ssh KalaSearch@your_server_ip

执行命令后,服务器会询问我们此账号对应的密码,属于对应的密码即可登录服务器。

接下来,如果我们要用这个账号执行超级权限才能执行的命令,可在命令前面增加 sudo 即可。

例如:

sudo XXXXXX

sudo 在首次执行时,会询问账号密码,输入正确的密码即可执行。

为了增强服务器的安全性,强烈建议使用 SSH 密钥,而不是使用密码登录。

使用 SSH 密钥登录 root 账号

如果我们使用 SSH 密钥 登录到服务器,就可以禁用密码的登录。我们首先要把本地的公钥的副本添加到新用户的~/.ssh/authorized_keys文件夹中,才能登录成功。

由于公钥已经在服务器 root 账户的~/.ssh/authorized_keys文件夹中,因此我们可以直接把文件夹中的文件直接复制到新账户中。

复制文件最简单的办法是使用rsync 命令。可以复制root用户的.ssh 目录,保留权限的同时修改文件的所有者。所有操作都在一个命令中完成。

rsync --archive --chown=KalaSearch:KalaSearch ~/.ssh /home/KalaSearch

注意:使用rsync命令时,一定要注意/ 的使用,源目录使用~/.ssh结尾不包含/ ,如果带上 /的话,rsync 不是把整个目录复制过去,而是把目录里的.ssh给复制过去,而不是把整个目录复制过去。一定要注意命令的严谨。

现在,我们打开新终端窗口,然后使用新用户名登录服务器吧。

ssh KalaSearch@your_server_ip

执行这段命令后,服务器不会询问我们登录密码,而是直接登录到服务器。

扩展阅读

Docker系列教程

Linux系列教程

Nginx系列教程

友情链接更新日志© 2020, 卡拉搜索, Built with ❤️ in San Francisco + Beijing

京ICP备15049164号-3