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 用户配置密钥。
注意:即便修改了 WebUI 的登录用户,不论以任何身份登录,在此处修改的密钥都是 root 用户的密钥,并不是登录用户的密钥。
然后将监听网卡改为 lan,防止外部访问,并且禁用 root 使用密码登录,不过即便如此也推荐给 root 用户配置复杂密码。
OpenWrt 虽然也是一个 Linux 发行版,但是和常见的发行版不同,它使用的 SSH 服务基于 Dropbear,而非 OpenSSH。其密钥文件位于 /etc/dropbear/authorized_keys
中,上述配置后可以在此路径中看到密钥的公钥文件。
普通用户密钥
在 OpenWrt 中普通用户的密钥存储路径反而回归正常,存在 ~/.ssh/authorized_keys
,将公钥复制到此即可。
附录
参考链接
本文由 柒 创作,采用 知识共享署名4.0
国际许可协议进行许可。
转载本站文章前请注明出处,文章作者保留所有权限。
最后编辑时间: 2023-11-11 15:42 PM