POST

飞牛 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 的配置。

👁 - 次浏览

留言

← 返回首页