OpenWrt 配置普通用户使用密钥登录
后知后觉 暂无评论

OpenWrt 默认使用 root 账户管理整个系统,并且在 WebUI 上会自动填充用户名信息,而家里的网络环境比较复杂,主路由会为所有局域网设备分配公网 IPv6 地址。

这样对外很不安全,因此需要对 SSH 进行配置加固,并且拒绝外网登录。

配置新用户

首先以 root 用户 SSH 登录 OpenWrt,然后执行命令:

opkg install ss vim sudo shadow-useradd shadow-usermod shadow-groupadd

然后创建用户并配置用户(以 kane 为例,替换为需要的用户名即可)

groupadd -g 27 sudo
useradd -m -s /bin/ash kane
usermod -a -G sudo kane

然后为其配置 sudo 免密码权限

visudo

找到 %sudo 开头的行,解除注释并修改为:

%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

配置密钥登录

先生成 ed25519 格式的密钥

ssh-keygen -t ed25519 -C something

然后将信息粘贴进 OpenWrt 管理界面 System -> Administration -> SSH-Keys 中,即可为 root 用户配置密钥。

密钥配置(!AVIF)

注意:即便修改了 WebUI 的登录用户,不论以任何身份登录,在此处修改的密钥都是 root 用户的密钥,并不是登录用户的密钥。

然后将监听网卡改为 lan,防止外部访问,并且禁用 root 使用密码登录,不过即便如此也推荐给 root 用户配置复杂密码。

安全配置(!AVIF)

OpenWrt 虽然也是一个 Linux 发行版,但是和常见的发行版不同,它使用的 SSH 服务基于 Dropbear,而非 OpenSSH。其密钥文件位于 /etc/dropbear/authorized_keys 中,上述配置后可以在此路径中看到密钥的公钥文件。

普通用户密钥

在 OpenWrt 中普通用户的密钥存储路径反而回归正常,存在 ~/.ssh/authorized_keys,将公钥复制到此即可。


附录

参考链接

本文撰写于一年前,如出现图片失效或有任何问题,请在下方留言。博主看到后将及时修正,谢谢!
禁用 / 当前已拒绝评论,仅可查看「历史评论」。