作者:幻好
起源:恒生 LIGHT 云社区
概述
随着云技术的成熟,越来越多的人开始应用云服务器搭建本人的利用,然而很多人并不在意网络安全的问题,导致服务器被黑客攻击,最初追悔莫及。本文将对平安登陆协定 SSH 的创立及应用进行介绍,帮忙大家进步平安防备。
SSH(平安外壳协定)是一种加密网络协议,它容许用户通过不平安的网络安全地拜访近程计算机。
SSH 密钥是一种更平安的登录 SSH 服务器的办法,因为它们不易受到常见的暴力明码黑客攻击。只管 SSH 反对基于明码的身份验证,但通常倡议应用 SSH 密钥。生成 SSH 密钥对会创立两个长字符串: 公钥 和 私钥。能够将公钥放在任何服务器上,而后应用能够拜访私钥的 SSH 客户端连贯到服务器。当公钥和私钥匹配时,SSH 服务器无需明码即可授予拜访权限。也能够通过应用可选(但强烈推荐)的密码保护私钥来进一步提高密钥对的安全性。
具体操作
创立密钥对
首先是在客户端机器上创立一个密钥。这可能是本地计算机。在本地命令行中键入命令:ssh-keygen -t ed25519
[root@localhost ~]# ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
输出命令后,会看到输入的命令确认信息,须要输出密钥保留地址。
如果应用的零碎是不反对创立
ed25519
密钥的旧零碎,或者连贯的服务器不反对它们,则须要创立一个强rsa
密钥对:ssh-keygen -t rsa -b 4096
复制这会将-t
“类型”标记更改为rsa
,并增加-b 4096
“位”标记以创立 4096 位密钥。
指定保留密钥的地位
ssh-keygen
命令的第一个提醒是询问保留密钥的地位:
Enter file in which to save the key (/root/.ssh/id_ed25519):
能够间接按 ENTER
此处将文件保留到 .ssh
您的主目录中的默认地位,或者指定零碎中某一地址目录。
这里咱们间接回车,保留默认地址。
创立明码
确认保留地址后,会提醒须要设置一个明码:
Enter passphrase (empty for no passphrase):
明码也能够间接默认不设置,但强烈建议还是设置明码,因为密钥的安全性,还是基于设置的复杂程度。如果没有明码的私钥落入未经受权的其他人手上,他们将可能登录到你应用相干公钥配置的任何服务器。
回顾一下,整个密钥生成过程如下所示:
[root@localhost ~]# ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_ed25519.
Your public key has been saved in /root/.ssh/id_ed25519.pub.
The key fingerprint is:
SHA256:hRTOxc4IFviuv0vr4q61fGTee2Xo5Ol/gmUtZh/Y55s root@localhost.localdomain
The key's randomart image is:
+--[ED25519 256]--+
| ...oo. |
| . o+ o. |
| o .++. |
| . ..o |
| . S . + |
| + o X + .|
| .=.. + X o + |
| oooo.. * . o o|
| .+==*o.+...o E.|
+----[SHA256]-----+
公钥当初位于 /root/.ssh/id_ed25519.pub.
私钥当初位于 /root/.ssh/id_ed25519.
将公钥复制到近程服务器
生成密钥对后,就能够将公钥放在要连贯的服务器上。
能够 authorized_keys
应用该 ssh-copy-id
命令将公钥复制到服务器的文件中。确保替换示例用户名和地址:
ssh-id user@server_address
命令实现后,将可能通过 SSH 登录服务器,而不会被提醒输出明码。然而,如果在创立 SSH 密钥时设置了明码,则须要输出明码。次要是因为本地的 ssh 客户端须要进行解密,而不是近程服务器须要解密。
禁用基于明码的 SSH 身份验证
将 SSH 密钥复制到服务器后,能够通过将 SSH 服务器配置为禁用基于明码的身份验证来齐全禁止明码登录。
在禁用基于明码的身份验证之前,要 确保能够应用 SSH 密钥胜利登录服务器,并且服务器上没有其余用户应用明码登录。
要禁用基于明码的 SSH 身份验证,请关上 SSH 配置文件。它通常位于以下地位:
sudo nano /etc/ssh/sshd_config
此命令将在 nano
文本编辑器中关上文件。在文件中找到蕴含 PasswordAuthentication
的行(如果不存在则创立该行),确保没有 #
在该行的结尾用 a 正文掉,并将其更改为 no
:/etc/ssh/sshd_config
PasswordAuthentication no
实现后保留并敞开文件。在 中 nano
,应用 CTRL+O
保留,点击 ENTER
确认文件名,而后 CTRL+X
退出。
从新加载 sshd
服务以使这些更改失效:
sudo systemctl reload sshd
在退出以后的 SSH 会话之前,可在另一个终端中进行测试连贯以验证其依然能够连贯。
论断
在本文中,咱们创立了一个 SSH 密钥对,将公钥复制到了服务器,并且(可选)齐全禁用了基于明码的身份验证,通过这些操作可能帮忙咱们晋升服务器的安全性。
想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?
恒生 LIGHT 云社区,由恒生电子搭建的金融科技业余社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。
扫描下方小程序二维码,退出咱们!