由于使用密码方式登录,会有接收到很多尝试爆破的登录连接,考虑禁止SSH用户名密码登录模式,改用证书登录。
- 生成公钥和私钥
ssh-keygen -t rsa
按照提示生成,提示输入证书密码,可以留空,如果输入了,每次登录还需要输入证书的密码。完成后会在~/.ssh/
目录下生成 id_rsa
和 id_rsa.pub
文件。
- 在服务上将公钥内容添加到
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工具用证书登录,本地登录需要将公钥和私钥都保存在一个文件夹,如果登录没有问题,进入下一步
- 修改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还能用,别着急关(万一有问题可以急救),再试试证书是否能正常登录,用户名密码登录应该已经不能登录。