共计 4983 个字符,预计需要花费 13 分钟才能阅读完成。
介绍
当你第一次创建一个新的 Ubuntu 16.04 服务器时,有一些配置步骤,你应该早早作为基本设置的一部分。这将增加服务器的安全性和可用性,并为后续操作提供坚实的基础。
第一步 – Root 登录
要登录到您的服务器,您需要知道您的服务器的公共 IP 地址。您还需要密码或(如果您安装了 SSH 密钥进行身份验证)“root”用户帐户的私钥。
下面关于 SSH 相关的文章您也可能喜欢,不妨参考下:
Ubuntu 下配置 SSH 服务全过程及问题解决 http://www.linuxidc.com/Linux/2011-09/42775.htm
Ubuntu 14.04 下安装 Samba 及 SSH 服务端的方法 http://www.linuxidc.com/Linux/2015-01/111971.htm
集群环境 SSH 免密码登录设置 http://www.linuxidc.com/Linux/2017-03/141296.htm
提高 Ubuntu 的 SSH 登陆认证速度的办法 http://www.linuxidc.com/Linux/2014-09/106810.htm
远程 SSH 连接服务与基本排错 http://www.linuxidc.com/Linux/2017-05/143738.htm
使用 SSH 公钥密钥自动登陆 Linux 服务器 http://www.linuxidc.com/Linux/2017-02/140642.htm
开启 SSH 服务让 Android 手机远程访问 Ubuntu 14.04 http://www.linuxidc.com/Linux/2014-09/106809.htm
SSH 非交互式密码授权远程执行脚本 http://www.linuxidc.com/Linux/2017-04/143180.htm
SSH 通过密钥登陆 http://www.linuxidc.com/Linux/2017-06/144997.htm
Linux 上实现 SSH 免密码登陆远程服务器 http://www.linuxidc.com/Linux/2017-05/144165.htm
如果您尚未连接到你的服务器,继续前进,登录为 root
使用以下命令(替换您的服务器的公网 IP 地址高亮显示的字)用户:
ssh root@SERVER_IP_ADDRESS
通过接受有关主机的真实性警告,如果出现的话,那么提供你的 Root 认证(密码或私钥)完成登录过程。如果是您首次使用密码登录服务器,则还会提示您更改 root 密码。
关于 Root
root 用户是具有非常广泛特权的 Linux 环境中的管理用户。因为 root 帐户的更高权限的,你实际上是使用它定期 气馁。这是因为固有的 root 帐户的权力的一部分,甚至是偶然做出极具破坏性的变化,能力。
下一步是设置一个替代用户帐户,减少日常工作的影响范围。我们会教你如何在你需要时获得更多的权限。
第二步 – 创建新用户
一旦你登录为root
,我们准备补充一点,我们将使用从现在起登录的新用户帐户。
此示例创建一个名为“sammy”的新用户,但您应该将其替换为您喜欢的用户名:
adduser sammy
您会被问到几个问题,从帐户密码开始。
输入强密码,如果需要,可以选择填写任何附加信息。这不是必需的,你只需要碰撞 ENTER
你想跳过任何领域。
第三步 – Root 特权
现在,我们有一个具有常规帐户权限的新用户帐户。但是,我们有时可能需要执行管理任务。
为了避免必须注销正常用户并以 root 帐户重新登录,我们可以为我们的普通帐户设置所谓的“超级用户”或 root 权限。这将使我们的普通用户通过字当头运行具有管理权限的命令 sudo
每一个命令。
要向我们的新用户添加这些权限,我们需要将新用户添加到“sudo”组。默认情况下,在 Ubuntu 16.04,谁属于“命令”组中的用户被允许使用 sudo
命令。
作为 root
,运行这个命令到新的用户加入到Sudo 组(替换用新的用户突出显示的单词):
usermod -aG sudo sammy
现在您的用户可以运行具有超级用户权限的命令!
如果要提高服务器的安全性,请按照本教程中的其余步骤操作。
第四步 – 添加公钥认证(推荐)
保护服务器的下一步是为新用户设置公钥认证。设置此项将通过要求私有 SSH 密钥登录来提高服务器的安全性。
生成密钥对
如果您还没有 SSH 密钥对,它由一个公钥和私钥,你需要生成一个。如果您已经有您想要使用一个密钥,跳到 复制公钥 一步。
要生成一个新的密钥对,在 本地计算机(即计算机)的终端输入以下命令:
ssh-keygen
假设您的本地用户名为“localuser”,您将看到如下所示的输出:
Generating 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 sammy@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 -sammy
现在你将在你的新用户的主目录。
创建一个新目录 .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 密钥作为您的用户登录。
接下来,我们将介绍如何通过禁用密码身份验证来提高服务器的安全性。
第五步 – 禁用密码验证(推荐)
现在您的新用户可以使用 SSH 密钥登录,您可以通过禁用仅密码身份验证来提高服务器的安全性。这样做将限制对您的服务器的 SSH 访问仅限于公钥认证。也就是说,登录到您的服务器(除了控制台)的唯一方法是拥有与安装的公钥配对的私钥。
注意:只有当你安装了一个公共密钥用户在上一节中,建议禁用密码身份验证,第四步。 否则,你将锁定自己的服务器!
要在服务器上禁用密码验证,请按照下列步骤操作。
作为 root 或新的用户 Sudo,打开 SSH 守护程序配置:
sudo nano /etc/ssh/sshd_config
查找指定线路PasswordAuthentication
,删去前面的注释它#
,然后将其值改为“无”。在进行更改后,它应该如下所示:
PasswordAuthenticationno
以下是另外两个对于纯钥验证重要的设置,默认设置。如果你以前没有修改这个文件,你 并不 需要更改这些设置:
PubkeyAuthentication yes
ChallengeResponseAuthenticationno
当你完成更改,保存和使用,我们去了前面的方法关闭文件(CTRL-X
然后Y
,然后ENTER
)。
键入此以重新加载 SSH 守护程序:
sudo systemctl reload sshd
密码验证现已禁用。您的服务器现在只能使用 SSH 密钥身份验证。
第六步 – 测试登录
现在,在注销服务器之前,您应该测试新的配置。在您确认可以通过 SSH 成功登录之前,请不要断开连接。
在 本地机器 上的 一个新的终端,使用我们新创建的帐户登录到服务器。为此,请使用此命令(替换您的用户名和服务器 IP 地址):
ssh sammy@SERVER_IP_ADDRESS
如果您向用户添加了公钥身份验证,如第四步和五所述,则您的私钥将用作身份验证。否则,系统将提示您输入用户的密码。
请注意有关密钥验证:如果您使用密码生成密钥对,你会被提示输入密码为您的钥匙。 否则,如果您的密钥对是密码短语,您应该没有密码登录到您的服务器。
一旦向服务器提供身份验证,您将以新用户身份登录。
记住,如果你需要运行一个具有 root 权限的命令,在类似这样之前键入“sudo”:
sudo command_to_run
第七步 – 设置基本防火墙
Ubuntu 16.04 服务器可以使用 UFW 防火墙来确保只允许与某些服务的连接。我们可以很容易地使用这个应用程序设置基本的防火墙。
不同的应用程序可以在安装时向 UFW 注册其配置文件。这些配置文件允许 UFW 按名称管理这些应用程序。OpenSSH,该服务允许我们现在连接到我们的服务器,已在 UFW 注册了一个配置文件。
您可以通过键入以下内容查看此内容:
sudo ufw app list
Available applications:OpenSSH
我们需要确保防火墙允许 SSH 连接,以便我们可以在下次重新登录。我们可以通过键入以下内容来允许这些连接:
sudo ufw allow OpenSSH
之后,我们可以通过键入以下内容启用防火墙:
sudo ufw enable
键入“y”,然后按 ENTER 键继续。您可以看到仍然允许 SSH 连接:
sudo ufw status
Status: active
ToActionFrom------------OpenSSH ALLOW AnywhereOpenSSH(v6) ALLOW Anywhere(v6)
如果您安装和配置额外的服务,则需要调整防火墙设置允许在可接受的流量。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145696.htm
![post-qrcode](https://www.xgss.net/wp-content/uploads/2023/07/二维码-微信公众号256x256.jpg)