由于使用密码方式登录,会有接收到很多尝试爆破的登录连接,考虑禁止SSH用户名密码登录模式,改用证书登录。

  1. 生成公钥和私钥
ssh-keygen -t rsa

按照提示生成,提示输入证书密码,可以留空,如果输入了,每次登录还需要输入证书的密码。完成后会在~/.ssh/目录下生成 id_rsaid_rsa.pub 文件。

  1. 在服务上将公钥内容添加到 authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 不再服务器生成的
vim ~/.ssh/authorized_keys

检查~/.ssh/authorized_keys文件权限

-rw------- 1 xxx xxx 400 Mar 24 20:10 authorized_keys
# 如果权限不对,执行以下命令
chmod 600 ~/.ssh/authorized_keys

这个时候可以尝试使用ssh工具用证书登录,本地登录需要将公钥和私钥都保存在一个文件夹,如果登录没有问题,进入下一步

  1. 修改sshd配置文件 在/etc/ssh/sshd_config.d下增加一个配置文件,达到覆盖系统默认的/etc/ssh/sshd_config.d 的目的,因为ssh如果升级,会有被覆盖的风险
vim /etc/ssh/sshd_config.d/60-custom.conf

增加以下内容

PasswordAuthentication no

保存后,重启sshd服务
这个时候原来用密码登录的ssh还能用,别着急关(万一有问题可以急救),再试试证书是否能正常登录,用户名密码登录应该已经不能登录。