如何禁止SSH使用密码登录
时间:2020-03-05 15:29:44 来源:igfitidea点击:
基本的SSH强化步骤之一是禁用基于密码的SSH登录。
我们知道可以将ssh与root或者其他帐户的密码一起使用,以远程登录Linux服务器。
但这带来了安全风险,因为大量的漫游器始终试图使用随机密码登录到系统。
这称为蛮力攻击。
如果在Linux服务器上检查登录信息。
我们会惊讶地发现服务器上发生了如此多的失败尝试。
Hyman@theitroad:~# lastb | tail root ssh:notty 49.235.87.213 Wed Apr 1 06:25 - 06:25 (00:00) root ssh:notty 95.128.137.176 Wed Apr 1 06:25 - 06:25 (00:00) aw ssh:notty 36.108.175.68 Wed Apr 1 06:25 - 06:25 (00:00) aw ssh:notty 36.108.175.68 Wed Apr 1 06:25 - 06:25 (00:00) fx ssh:notty 113.88.164.53 Wed Apr 1 06:25 - 06:25 (00:00) fx ssh:notty 113.88.164.53 Wed Apr 1 06:25 - 06:25 (00:00) root ssh:notty 112.215.113.10 Wed Apr 1 06:25 - 06:25 (00:00) root ssh:notty 152.32.173.74 Wed Apr 1 06:25 - 06:25 (00:00)
这就是为什么我们应该使用强密码的原因。
处理它们的正确方法是使用诸如fail2ban之类的工具。
另一种方法是禁用基于密码的身份验证,以便没有人可以通过登录密码进行连接。
这样,只有那些将其公共ssh密钥添加到服务器的系统(称为基于密钥的身份验证)才能连接到服务器。
阅读有关设置ssh配置的信息。
禁用SSH密码身份验证
在执行此操作之前,必须牢记以下几点:
- 确保在个人/工作计算机上创建ssh密钥对,并将此公共SSH密钥添加到服务器,以便至少可以登录到服务器。
- 禁用基于密码的身份验证意味着我们无法从随机计算机进入服务器。
- 我们一定不能丢失ssh密钥。如果我们格式化个人计算机并丢失了ssh密钥,则将永远无法访问服务器。
- 如果我们被锁定,则将永远无法访问服务器。
一些云服务器提供商(例如Linode和UpCloud)提供了VNC控制台,该控制台仍然可以为我们提供帮助。
警告
- 如果我们熟悉SSH和其他sysadmin概念,请仅禁用基于密码的SSH身份验证。我们还应该知道如何使用基于终端的文本编辑器,例如Vim或者Nano。
好的。
因此,现在我们知道与通过密码禁用SSH登录相关的风险。
让我们来看看如何做。
使用基于密钥的身份验证以root用户身份登录到Linux服务器。
使用Nano或者Vim之类的编辑器来编辑以下文件:
/etc/ssh/sshd_config
找到以下行:
PasswordAuthentication yes
并将其更改为:
PasswordAuthentication no
如果该行的开头有一个(表示已注释掉),请将其删除。
进行这些更改后,请保存文件,然后使用以下命令重新启动SSH服务:
systemctl restart ssh