如何禁止使用密码通过 ssh 连接远程服务器

系统 Linux
禁止使用密码登录 ssh(转而使用密钥代替密码登录)可以提高远程服务器的安全性,降低被远程攻击的可能性。

禁止使用密码登录 ssh(转而使用密钥代替密码登录)可以提高远程服务器的安全性,降低被远程攻击的可能性。

我们都知道可以使用 root 或者其他用户的密码通过 ssh 登录到远程 Linux 服务器。

但是这会有一定的安全风险,大量的暴力攻击脚本总是会试图使用随机密码登录到我们的系统。查看 Linux 服务器上的登录日志,如果有大量失败登录记录,那可能就是被暴力攻击登录的痕迹。​

root@myserver:~# 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)

这就是我们为什么一直强调要使用强密码的原因。我们在 可以提高 ssh 安全性的几个配置​ 一文中提到过,加强安全性可以使用类似 fail2ban 的工具,或者直接禁止使用密码登录,这样不管是谁都无法通过登录密码进行远程连接了。

禁用密码登录后,那怎样在连接 ssh 呢?可以使用密钥,即将公共 ssh 密钥添加到服务器的系统(称为基于密钥的身份验证)的方式连接到服务器。

禁用 ssh 密码身份验证

在真正动手设置之前,需要注意以下事项:

1)确保在个人计算机上创建了 ssh 密钥对,并将公钥添加到远程服务器,以便可以登录到远程服务器;

2)禁用基于密码的身份验证,意味着你不能使用其他计算机通过 ssh 连接远程服务器;

3)ssh 密钥需妥善保存,如果因为个人计算机被格式化或其他原因导致丢失密钥,那么就无法连接远程服务器了。

一些云服务器提供商(比如 Linode 和阿里云服务)提供了 VNC 控制台,如果无法连接远程服务器,那么可以使用这种方式连接系统。

另外,要禁用基于密码的 ssh 身份验证,你需要熟悉 ssh 和其他 sysadmin 概念,且知道如何使用基于终端的文本编辑器,比如 vim 或 nano。

在了解以上注意事项后,我们接下来看看如何禁用基于密码的 ssh 身份验证。

首先,以 root 身份登录到 Linux 服务器,然后使用基于终端的编辑器(比如 vim)编辑以下文件:

/etc/ssh/sshd_config

找到如下内容:

PasswordAuthentication yes

然后将其改为:

PasswordAuthentication no

如果该行被注释掉了(前面有一个 #),那么取消注释(即去掉前面的 #)。

修改完成后,保存文件,并重启 ssh 服务:

systemctl restart ssh

这样就可以了。

以上就是本次分享全部内容,欢迎讨论。

责任编辑:庞桂玉 来源: TIAP
相关推荐

2021-09-29 11:46:05

远程服务器VSCode

2016-09-13 21:43:50

2022-03-11 13:28:54

SSHLinux命令

2015-05-05 15:24:42

TCPIPVNC远程

2018-09-20 09:12:16

2023-02-03 10:38:07

2020-08-02 15:00:40

SquidSSH系统运维

2018-07-30 09:09:45

WindowsUbuntuLinux服务器

2023-12-21 23:14:07

2010-03-10 11:31:31

2009-07-20 19:53:23

SSHLinuxMac

2009-02-10 15:46:00

VNCLinux服务器远程桌面

2020-10-16 18:16:21

远程服务器终端开发人员

2015-05-28 15:32:14

Linuxssh

2018-06-12 10:12:12

2015-05-22 08:59:38

2017-03-03 09:19:53

SSH命令服务器

2019-09-18 08:00:00

MySQL数据库服务器

2010-09-08 15:14:36

2010-03-18 17:16:42

服务器重启服务器
点赞
收藏

51CTO技术栈公众号