youyichannel

志于道,据于德,依于仁,游于艺!

0%

服务器密码被爆破啦!直接取消密码登陆!

背景

服务器如果开启了密码登陆,就很有可能被爆破。我们可以使用更加安全的 ssh 登陆,同时关闭掉密码登陆。下面来看看如何实现吧!

操作

生成密钥对

SSH 需要使用密钥对来进行连接,密钥对由成对的「公钥和私钥」组成,私钥放在客户端,公钥放在服务端。当使用密钥对进行连接时,服务端只需要验证连接时使用的私钥是和自己公钥成对的,就可以建立连接了。

前置环境准备

1)客户端:需要有 OpenSSH,可以使用 ssh -V 查看;

2)服务端:需要有 OpenSSH,同时 sshd 服务正常启动,可以使用systemctl status sshd 查看。

生成密钥对

使用ssh-keygen命令生成密钥对,推荐算法为ed25536,可以参考GiHub SSH

ssh-keygen -t ed25519 -C "aliyun-cloud-ssh"

同时还可以使用 -C 来添加注释。

➜  ~ ls ~/.ssh | grep 'aliyun'
aliyun_id_ed25519
aliyun_id_ed25519.pub

上传公钥到服务器

服务器上有一个文件是 ~/.ssh/authorized_keys,这个文件中就保存着客户端的公钥,我们可以直接复制公钥的内容到这个文件中,也可以使用ssh-copy-id命令来上传公钥内容

ssh-copy-id -i ~/.ssh/aliyun_id_ed25519.pub root@ip

此时再查看authorized_keys文件,就会发现内容是公钥内容。

配置服务器的sshd

我们还需要配置服务器的 sshd 服务,开启 ssh 验证,同时关闭密码登陆。

使用命令vim /etc/ssh/sshd_config来编辑sshd的配置文件,修改内容如下:

PubkeyAuthentication yes # 开启公钥验证
PasswordAuthentication no # 关闭密码验证

保存退出后,重启 sshd 服务:

systemctl restart sshd

至此,你的服务器就只能够使用私钥登陆了,不能使用密码登陆了。