想解锁SSH又不想刷其他第三方固件?这篇文章帮你解决!

上一篇文章记录了AX6S刷入openwrt的详细教程,但开启ssh的只有开发版(开发版的弊端很明显,性能很差),那么我们如何在稳定版开启SSH呢?经过我在网上查阅的资料,这里总结一下。
参考文献:https://github.com/lemoeo/AX6S


根据大佬的解释,小米路由器是双系统分区,当系统更新时会刷入另一个分区,然后通过另一个分区来启动,所以升级之前的系统在设备分区里,所以可以通过配置引导文件来设定启动的系统。


1、暂时升级到开发版

Redmi AX6S 开发版固件下载地址:miwifi_rb03_firmware_stable_1.2.7.bin

为了解锁SSH功能,我们需要暂时升级到开发版,直接在稳定版的升级页面用开发版镜像包手动升级即可;


2、在线计算获取 root 密码
在浏览器中打开 https://miwifi.dev/ssh
输入路由器后台右下角完整的 SN 号,点击calc即可获取到password


3、打开并设置SSH功能
这里使用 MobaXterm Home Edition 连接,如果有其它工具更好
先使用telnet协议登入,地址为路由器的地址,一般为 192.168.31.1
用户名为 root ,密码为上一步获取到的password

依次执行下列代码开启SSH功能

nvram set telnet_en=1 && nvram set ssh_en=1 && nvram set uart_en=1 && nvram set boot_wait=on && nvram commit
/etc/init.d/dropbear enable & /etc/init.d/dropbear start

4、自动开启 SSH 服务功能
经过上面的步骤,已经成功解锁 SSH 服务,但是由于小米路由器是 Snapshot 系统,重启会重置为最初状态,所以无法保存ssh配置,但大佬们制作出了一个绝妙的方案。
解决办法:创建一个脚本添加到开机自启动,来实现自动开启 SSH 服务

mkdir /data/auto_ssh && cd /data/auto_ssh
curl -kfsSL -O https://cdn.jsdelivr.net/gh/lemoeo/AX6S@main/auto_ssh.sh && chmod +x auto_ssh.sh
./auto_ssh.sh install

如果不需要自动开启 SSH 服务,使用(./auto_ssh.sh uninstall)命令移除开机自启动。


5、切换回稳定版系统
首先查看当前引导分区:nvram get flag_last_success
如果查看当前引导分区返回结果为 0,说明当前开发版系统在 0 分区,更新之前的稳定版系统就在 1 分区。执行命令修改引导分区为 1 分区并重启路由器(如果是 1 则相反,0 为稳定版所在的分区)

执行下列命令:(数值为稳定版的分区id)

nvram set flag_last_success=1
nvram set flag_boot_rootfs=1
nvram commit
reboot

因为我们已经添加了自动脚本,理论上只要不恢复出厂设置或者重新刷机,切换回稳定版系统或者系统升级都不会影响SSH服务,如果需要固化,还得去看看大佬的文献去。

最后修改:2024 年 09 月 08 日

如果觉得我的文章对你有用,请给我发电 o((>ω< ))o