随身Wi-Fi移植dropbear开启ssh
前言
最近入手某速R106随身Wi-Fi一个,机器是UDX710芯片,arm64架构,嵌入式linux系统,网上有去云控,开启telnet的方法,还是很有可玩性的。
折腾思路
去云控期间telnet是开启状态,然后机器会重启,想要登录系统就需要中断重启,保持telnet开启。我的方法是软件连接到机器的瞬间马上关掉,拼了几次手速果然成功了,然后就可以telnet登录了,下面就可以开启折腾之路了。
设置telnet开机自启
经过上面的操作,现在已经可以用telnet登录了,我这里用SecureCRT软件
![图片[1]-R106随身Wi-Fi移植dropbear开启ssh](https://cos.gcboy.com//2023/07/截屏2023-07-29-00.41.48.png)
![图片[2]-R106随身Wi-Fi移植dropbear开启ssh](https://cos.gcboy.com//2023/07/截屏2023-07-29-00.46.00.png)
系统默认会把根目录挂载为只读,这就导致修改文件无法保存,需要先重新挂载为读写,用mount命令可以看到挂载信息
sh-4.4# mount
ubi0:system on / type ubifs (ro,relatime,ubi=0,vol=19)
devtmpfs on /dev type devtmpfs (rw,relatime,size=99536k,nr_inodes=24884,mode=755)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
tmpfs on /dev type tmpfs (rw,relatime,size=64k,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
/dev/ubi0_userdata on /mnt/userdata type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=23)
/dev/ubi0_prodnv on /etc/productinfo type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=4)
/dev/ubi0_m_data on /m_data type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=21)
/dev/ubi0_m_webui on /m_webui type ubifs (ro,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=22)
/dev/ubi0_userdata on /mnt/data type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=23)
/dev/ubi0_userdata on /home type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=23)
/dev/ubi0_userdata on /var type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=23)
tmpfs on /var/volatile type tmpfs (rw,relatime)
/dev/ubi0_userdata on /cache type ubifs (rw,nosuid,nodev,noatime,compr=lzo,ubi=0,vol=23)
用mount -o remount,rw /命令重新挂载就可以了,这样只是临时挂载,需要再修改/etc/fstab文件保存挂载信息
# stock fstab - you probably want to override this with a machine specific one
/dev/root / auto ro 1 0
proc /proc proc defaults 0 0
devpts /dev/pts devpts mode=0620,gid=5 0 0
tmpfs /run tmpfs mode=0755,nodev,nosuid,strictatime 0 0
# uncomment this if your device has a SD/MMC/Transflash slot
#/dev/mmcblk0p1 /media/card auto defaults,sync,noauto 0 0
/dev/ubi0_userdata /mnt/userdata ubifs noatime,nosuid,nodev,compr=lzo wait,encryptable=footer
/dev/ubi0_prodnv /etc/productinfo ubifs noatime,nosuid,nodev,compr=lzo wait,encryptable=footer
/dev/ubi0_m_data /m_data ubifs noatime,nosuid,nodev,compr=lzo wait,encryptable=footer
/dev/ubi0_m_webui /m_webui ubifs ro,noatime,nosuid,nodev,compr=lzo wait,encryptable=footer
/dev/mmcblk0p1 /mnt/media auto defaults 0 0
/mnt/userdata/data /mnt/data none rw,bind 0 0
/mnt/userdata/home /home none rw,bind 0 0
/mnt/userdata/var /var none rw,bind 0 0
tmpfs /var/volatile tmpfs defaults 0 0
/mnt/userdata/cache /cache none rw,bind 0 0
把第3行ro改成defaults
开机自启的脚本在/etc/init.d/hostname.sh里面,在最后面加一条telnetd -l /bin/sh就好了
vi /etc/init.d/hostname.sh
#!/bin/sh
### BEGIN INIT INFO
# Provides: hostname
# Required-Start:
# Required-Stop:
# Default-Start: S
# Default-Stop:
# Short-Description: Set hostname based on /etc/hostname
### END INIT INFO
HOSTNAME=$(/bin/hostname)
hostname -b -F /etc/hostname 2> /dev/null
if [ $? -eq 0 ]; then
exit
fi
# Busybox hostname doesn't support -b so we need implement it on our own
if [ -f /etc/hostname ];then
hostname `cat /etc/hostname`
elif [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" -o ! -z "`echo $HOSTNAME | sed -n '/^[0-9]*\.[0-9].*/p'`" ] ; then
hostname localhost
fi
/home/root/r106/start.sh &
telnetd -l /bin/sh
如果操作没有问题,现在重启机器后telnet也会保持开启了。
移植dropbear开启ssh
开启ssh可以参考网上的案例,我这里提供编译好的文件
至于怎么把文件传到机器上去,我这里用的比较笨的方法,在电脑上搭个文件服务器,用wget命令下载,有懂的大神可以交流一下更方便的办法。
下载好文件后解压出来得到usr文件夹,把usr/bin和usr/sbin里面的文件copy到对应的目录,再生成ssh的密钥文件
cd /etc
mkdir dropbear
cd dropbear
dropbearkey -t rsa -f dropbear_rsa_host_key
dropbearkey -t dss -f dropbear_dss_host_key
创建启动脚本
/usr/sbin/dropdear_start.sh
#!/bin/sh
sleep 10
cd /usr/sbin
./dropbear
~
~
- /usr/sbin/dropdear_start.sh 1/4 25%
在/etc/init.d/hostname.sh添加一行/usr/sbin/dropdear_start.sh
设置root账号密码
sh-4.4# passwd root
Changing password for root
New password:
Retype password:
passwd: password for root changed by root
sh-4.4#
到这里已经可以ssh登录了。
总结
这是小白玩家的折腾经验,供大家参考,如果有幸让你看到这篇文章,欢迎留言交流。
参考资料:
- 最新
- 最热
只看作者