想解锁SSH又不想刷其他第三方固件?这篇文章帮你解决!
上一篇文章记录了AX6S刷入openwrt的详细教程,但开启ssh的只有开发版(开发版的弊端很明显,性能很差),那么我们如何在稳定版开启SSH呢?经过我在网上查阅的资料,这里总结一下。
参考文献:https://github.com/lemoeo/AX6S
根据大佬的解释,小米路由器是双系统分区,当系统更新时会刷入另一个分区,然后通过另一个分区来启动,所以升级之前的系统在设备分区里,所以可以通过配置引导文件来设定启动的系统。
1、暂时升级到开发版
为了解锁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服务,如果需要固化,还得去看看大佬的文献去。