前言
小米AX7000,带四个2.5G Wan/Lan口;
小米AX7000解锁ssh后,暂无openwrt固件可刷。
姐妹篇:全网首发-小米AX6000路由器解锁ssh并固化ssh+2.5G有线mesh组网+公网访问路由后台+红米AX6/小米AX6/AX3600/AX6000/AX9000全系列适用
1.准备工作
1.小米AX7000;
2.一个大于32G的U盘(需要格式化为EXT4格式)
2.解锁SSH
视频教程:
可以参照B站视频
文字教程:
- 准备一个U盘,要求分区为EXT4格式且可用空间大于32GB。
推荐下载 DiskGenius 进行操作,如图。
- 存储功能→Docker→安装Docker。(路由器需要联网)
进入路由器后台192.168.31.1安装docker
点击管理Docker,默认用户名密码 admin ,登录。
- 点击存储管理,如果下面的列表为空,则创建一个卷。点击卷右侧的详情,挂载点应该为/mnt/usb- XXXXXXX/ mi_docker/lib/docker/volumes/………… 记住这个
usb-XXXXXX
,例如usb-aabbccdd。 - 点击镜像管理,点击拉取,拉取
nginx:alpine-slim
镜像。
- 点击新拉取的镜像的右侧绿色运行按钮,选择 简单模式 ,容器名称随意。目录挂载写
/mnt/usb-XXXXXX/mi_docker/../../..:/real_root
点击运行。(这里的XXXX要换成之前获取到的。)
- 点击容器管理,选择刚才创建的容器,进入终端。
输入以下指令:
chroot /real_root sed -i '/flg_ssh=`nvram get ssh_en`/{:loop; N; /\n.*channel=`\/sbin\/uci get \/usr\/share\/xiaoqiang\/xiaoqiang_version.version.CHANNEL`\n.*return 0\n.*fi/!b loop; d}' /etc/init.d/dropbear /etc/init.d/dropbear start
通过putty等工具连接路由器的ssh,进行后面的步骤
解锁SSH到这就大功告成了!
3.软固化SSH
1.获取路由器root密码
输入SN:
初始密码:
2.通过putty连接路由器的ssh后,执行以下指令:
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
echo -e 'admin\nadmin' | passwd root
3.路由器重启后,dropbear文件会恢复成未修改以前的样子,因此要添加一个自启脚本,路由器每次启动,都会自动执行脚本,修改dropbear文件,开启ssh。
mkdir /data/auto_ssh && cd /data/auto_ssh
curl -O https://cdn.nobb.cc/zip/ax7000/auto_ssh.sh
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
{/tabs-pane}
{tabs-pane label="方法2:离线方法"}
mkdir /data/auto_ssh && cd /data/auto_ssh
vi auto_ssh.sh
按一下a
键,然后将auto_ssh.sh
中文件的内容复制粘贴过来, 输入完成后,按一下ESC
,再输入:wq
,回车即可。
#!/bin/sh
host_key=/etc/dropbear/dropbear_rsa_host_key
host_key_bk=/data/auto_ssh/dropbear_rsa_host_key
# 如果存在备份的SSH密钥,将备份的密钥链接到dropbear使用的密钥
if [ -f $host_key_bk ]; then
ln -sf $host_key_bk $host_key
fi
# 当前固件为稳定版时,需要执行下面命令开启SSH
channel=`/sbin/uci get /usr/share/xiaoqiang/xiaoqiang_version.version.CHANNEL`
if [ "$channel" = "release" ]; then
sed -i 's/channel=.*/channel="debug"/g' /etc/init.d/dropbear
/etc/init.d/dropbear restart
fi
# 备份SSH密钥
if [ ! -s $host_key_bk ]; then
i=0
while [ $i -le 30 ]
do
if [ -s $host_key ]; then
cp -f $host_key $host_key_bk 2>/dev/null
break
fi
let i++
sleep 1s
done
fi
{/collapse-item}
确认没有问题后,执行下面的指令:
chmod +x auto_ssh.sh
uci set firewall.auto_ssh=include
uci set firewall.auto_ssh.type='script'
uci set firewall.auto_ssh.path='/data/auto_ssh/auto_ssh.sh'
uci set firewall.auto_ssh.enabled='1'
uci commit firewall
{/tabs-pane}
4.硬固化SSH
通过putty连接路由器的ssh后,执行以下指令(执行后会自动重启):
zz=$(dd if=/dev/zero bs=1 count=2 2>/dev/null) ; printf '\xA5\x5A%c%c' $zz $zz | mtd write - crash
reboot
等待路由器重启后,重新连接ssh,并执行以下指令(执行后会自动重启):
nvram set ssh_en=1
nvram set telnet_en=1
nvram set uart_en=1
nvram set boot_wait=on
nvram commit
bdata set ssh_en=1
bdata set telnet_en=1
bdata set uart_en=1
bdata set boot_wait=on
bdata commit
reboot
等待路由器重启后,重新连接ssh,并执行以下指令(执行后会自动重启):
mtd erase crash
reboot
等待路由器重启后,重新连接ssh,固化完成。
5.提升Docker权限
连接ssh后,执行以下指令(执行后会自动重启)
sed -i "s/authorization_plugins .*/authorization_plugins ''/g" /etc/config/mi_docker
reboot
注意事项
每次升级固件或重置固件后,都需要先telnet,再在telnet中开启ssh
使用putty通过telnet连接路由器,用户名为root,密码为初始密码,输入后即可登入路由器telnet后台。
通过telnet开启ssh,并修改root密码为admin:
sed -i '/flg_ssh=`nvram get ssh_en`/{:loop; N; /\n.*channel=`\/sbin\/uci get \/usr\/share\/xiaoqiang\/xiaoqiang_version.version.CHANNEL`\n.*return 0\n.*fi/!b loop; d}' /etc/init.d/dropbear
/etc/init.d/dropbear restart
echo -e 'admin\nadmin' | passwd root
通过ssh连接路由器,用户名为root,密码为admin,输入后即可登入路由器ssh后台,登入后再做一遍第三步软固化即可。
本文共 781 个字数,平均阅读时长 ≈ 2分钟
这篇文章写得深入浅出,让我这个小白也看懂了!
大佬,在离线安装那一步,输入:wq后为什么没有回到上一层,求助,谢谢