背景
服务器如果开启了密码登陆,就很有可能被爆破。我们可以使用更加安全的 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' |
上传公钥到服务器
服务器上有一个文件是
~/.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 # 开启公钥验证 |
保存退出后,重启 sshd 服务:
systemctl restart sshd |
至此,你的服务器就只能够使用私钥登陆了,不能使用密码登陆了。