通过密码登录 Linux 服务器存在安全风险。SSH 服务默认使用 22 端口+密码认证,长期暴露在网络中会持续遭受自动程序的暴力破解攻击。相比之下,密钥认证是更安全的替代方案。

如何生成密钥对不再赘述,主流的终端都包含密钥生成与管理功能。

为当前用户配置密钥登陆(~对于root用户表示/root、对于其他用户表示/home/username)

#创建目录及文件
mkdir -p ~/.ssh
echo "公钥内容" > ~/.ssh/authorized_keys
#配置正确的权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

接着修改/etc/ssh/sshd_config,编辑以下选项:

  • Port 22 # SSH监听端口,默认是22,可以更改为65535以内的值

  • PermitRootLogin yes # 允许 root 用户登录,根据使用的账户自行调整

  • PubkeyAuthentication yes # 开启公钥登录

  • PasswordAuthentication no # 关闭密码登录

保存并退出后,查看/etc/ssh/sshd_config.d/ 目录下是否有商家默认下发的ssh配置,也进行修改,否则配置会被覆盖

上述操作完成后,如果修改了ssh端口别忘了放行防火墙,最后执行systemctl restart sshd 重启ssh服务以应用配置

此时先别断开当前的ssh会话,新开一个ssh会话验证之前的配置是否生效,防止失联