飞牛 SSH 加固:换成密钥登录,把密码关掉
开着密码登录的 SSH,等于给暴力破解留了一扇门。换成密钥,顺手把门焊死。
SSH 是 NAS 上权限最大的入口:进去就是 root,能干任何事。密码登录的问题是,只要端口可达,就会有人一直试。
密钥登录没这个烦恼——没有私钥,试一百万次密码也没用。
原理
密钥登录是一对钥匙:私钥留在你的电脑上,公钥放到 NAS 上。
登录时 NAS 发一个随机挑战,你的客户端用私钥签名,NAS 用公钥验证。私钥不出本机,网络上传输的只是签名。
第一步:本机生成密钥
ssh-keygen -t ed25519 -C "nas-key"
一路回车,默认存在 ~/.ssh/id_ed25519。
建议给私钥设一个密码短语(passphrase),万一私钥文件泄露,还有一层保护。
第二步:把公钥传到 NAS
ssh-copy-id 用户名@NAS的IP
或者手动把 id_ed25519.pub 的内容追加到 NAS 的 ~/.ssh/authorized_keys。
目录权限很重要:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
权限太松,sshd 会拒绝使用这个密钥。
第三步:验证能用密钥登录
先别急着关密码登录:
ssh -i ~/.ssh/id_ed25519 用户名@NAS的IP
能免密进去,再往下走。
第四步:关闭密码登录
编辑 /etc/ssh/sshd_config:
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
PermitRootLogin prohibit-password 的意思是 root 只能用密钥,不能输密码。
改完重启服务:
systemctl restart sshd
重启之前先开一个新终端试一次密钥登录,确认没问题再关掉旧连接。配置写错又关了密码登录,就只能接显示器救了。
再加几层
改端口:把 22 换成不常用的端口,能挡掉大部分自动化扫描。注意改完端口后防火墙和端口映射要同步改。
限制来源 IP:只允许内网网段访问,或者通过 VPN 进来。公网直连 SSH 是最危险的做法。
装 fail2ban:连续失败几次就封 IP,能显著减少日志噪音。
禁用空密码:确保系统里没有密码为空的账号。
几个坑
改了配置没重启:改的是文件,不是运行中的服务。
文件权限不对:authorized_keys 权限太宽,密钥被忽略,表现为「密钥正确但还是要密码」。
换了电脑没带私钥:记得把私钥备份到安全的地方,不然就是彻底进不去。
以为关了密码就万事大吉:私钥文件被偷走一样能进,所以私钥本身也要保护。
小结
密钥登录的收益很直接:把「猜密码」这条路彻底堵死。
顺序记牢:先生成、再上传、先验证、最后关密码。中间任何一步没验证,都别动 sshd 的配置。
留言