安卓下使用 dropbear 开启SSH And arm 下的busybox

时间:2024-03-05 20:58:10

安卓系统 4.2.2  硬件是荣耀立方

只对电视盒子部分进行了操作,没有修改路由部分

先安装<超级终端><RE文件管理器>(华为的应用市场里有),安装 <360超级root>(很坑的一个玩意。如果可以用其他软件ROOT,不建议用这个)

        下载 arm 版的 dropbear,可以自己编译,也可以在下面地址下载

链接: https://pan.baidu.com/s/1XhIU9DQ1OyXWFR_CKwf_XA 密码: vkfd

     PS:该版本的dropbear 启动之后,任意用户名,任意密码都都可以登陆,不知道为什么,最后只能启用了证书登录

    压缩包内文件包括

─ ssh
   ├── bbc.sh
   ├── busybox
   ├── dropbear
   ├── dropbearkey
   ├── keys
   │   ├── authorized_keys
   │   └── g1.ppk
   ├── mot_boot_mode
   ├── scp
   ├── ssh
   └── ssh.sh

 

 

    文件夹 复制到U盘或者SD卡(我直接通过smb 放到立方的根目录了)插到设备上

 打开超级终端,在命令行下直接 输入 “su” 如果ROOT没问题的话,会然后对超级终端授权

然后将文件复制到 /data/sshtmp 目录

###注意:个人环境不同,命令不同。注意命令路径####
cp -r /mnt/sda/sda1/ssh /data/sshtmp #文件复制到 /data/sshtmp 目录
cd /data/sshtmp   #进入到文件目录
chmod 755 *       #设置文件权限 也可以使用 \'chmod +x *\' 赋予运行权限
cp busybox /system/xbin #复制busybox 到PATH目录,以下同理
cp dropbear /system/xbin
cp dropbearkey /system/xbin
cp scp /system/xbin
cp ssh /system/xbin

 

 需要的文件复制完毕,做常用命令的链接。PS:对于新手,请确认你知道在做什么。否则,请先看完全文在做操作,尤其是坑的部分

ln -s /system/xbin/busybox [
ln -s /system/xbin/busybox cat
ln -s /system/xbin/busybox chmod
ln -s /system/xbin/busybox chown
ln -s /system/xbin/busybox cmp
ln -s /system/xbin/busybox cp
ln -s /system/xbin/busybox date
ln -s /system/xbin/busybox dd
ln -s /system/xbin/busybox df
ln -s /system/xbin/busybox dmesg
ln -s /system/xbin/busybox ifconfig
ln -s /system/xbin/busybox insmod
ln -s /system/xbin/busybox kill
ln -s /system/xbin/busybox lsmod
ln -s /system/xbin/busybox md5sum
ln -s /system/xbin/busybox mkdir
ln -s /system/xbin/busybox mount
ln -s /system/xbin/busybox mv
ln -s /system/xbin/busybox netstat
ln -s /system/xbin/busybox printenv
ln -s /system/xbin/busybox ps
ln -s /system/xbin/busybox renice
ln -s /system/xbin/busybox rm
ln -s /system/xbin/busybox rmdir
ln -s /system/xbin/busybox rmmod
ln -s /system/xbin/busybox route
ln -s /system/xbin/busybox setconsole
ln -s /system/xbin/busybox sleep
ln -s /system/xbin/busybox sync
ln -s /system/xbin/busybox test
ln -s /system/xbin/busybox top
ln -s /system/xbin/busybox umount
ln -s /system/xbin/busybox vi
Busybox 常用命令的链接

 

建立 dropbear运行环境

1 mkdir /data/dropbear            #建立dropbear主目录
2 chmod 644 /data/dropbear    #设置目录的权限
3 mkdir /data/dropbear/.ssh     #建立ssh的配置目录
4 chmod 644 /data/dropbear/.ssh  #设置目录权限
5 dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key #生成密钥
6 dropbearkey -t dss -f /data/dropbear/dropbear_dss_host_key #生成密钥
7 echo >>/data/dropbear/.profile  "PATH=/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/system/xbin/bb:/data/local/bin" #建立用的环境变量
8 echo >>/data/dropbear/.profile "export PATH" #建立用的环境变量
9 ln -s /data/dropbear /etc/dropbear #做目录快捷方式

然后运行命令

dropbear -v 

可以用ssh 直接到该设备了。PS:我这里用户名和密码貌似随便输入就能登陆

 

设置dropbear 证书登录

cp ./keys/authorized_keys /data/dropbear/.ssh  #将公钥复制到ssh配置目录
chmod 600 /data/dropbear/.ssh/authorized_keys #设置权限否则不能用

    这个证书是通过puttygen 或者SecureCRT 生成。

    生成步骤如下:

      

      

 

        具体生成方式以及使用putty 或者SecureCRT登陆搜一下有很多

 

自启动设置。文件夹中 mot_boot_mode  可用于自启动 命令

     

mv /system/bin/mot_boot_mode  /system/bin/mot_boot_mode.bin #重命名原始脚本
cp mot_boot_mode /system/bin #将该脚本复制执行目录

     这种方法在我这设备上(荣耀立方)无效

     我是通过修改 \'/system/bin/start.webserver.sh\' 文件来实现开机自启动

 

========================================

以下是遇到的问题,和一些坑

=======================================

问题一:输入命令  chmod 755 *   或 chmod +x * 蓝屏重启。

      查看 /systme/bin/chmod 命令,指向的是 toolbox 程序。解决方法是用busybox 提供的chmod 程序。但因为这个时候 busybox 还没有运行权限,解决方法两种如下,

      方法一,

           安装RE文件管理器,直接用RE设置busybox 的运行权限,

           然后运行 ‘ /system/xbin/busybox rm /system/bin/chmod  ’ 删除原来的chmod程序

           继续运行‘/system/xbin/busybox ln -s /system/xbin/busybox /system/bin/chmod’ 重新建立chmod指向

     方法二,

           使用linux系统,将U盘格式化为 ext4 (貌似fat,ntfs 不支持linux的权限属性),然后在Linux系统下将busybox 设置chmod 755 * ,然后U盘插到设备上

           然后运行 ‘ busybox rm /system/bin/chmod  ’ 删除原来的chmod程序

           继续运行‘ busybox ln -s /system/xbin/busybox /system/bin/chmod’ 重新建立chmod指向

问题二:

     同上面类似,/system/bin/ 下面原有的命令可能链接到其他的程序,或者是链接到精简版的busybox。有需要,可以重新关联。

           建议先测试复制进去的busybox与系统的兼容新,然后将原来的删除,重新关联。查看busybox里包含的命令,直接运行就可以查看,如下图

     原系统自带的 阉割版busybox

         

    标准的,busybox

         

 

问题三,

       修改/system/bin 等文件  会 提示 \'Read-only file system\'只读 文件系统 

           解决方法,运行  mount命令 (如果 mount运行不了,参照上面解决方式,用busybox 里面的mount )会发现文件系统 属性为 ro 如下图

                  

     可以看到 跟目录‘/’ 与 ‘/system’ 目录都是只读属性 ,需要重新挂载,命令如下  

1     mount -o remount rootfs  /     #重新挂在跟目录
2     mount -o remount /dev/block/platform/hi_mci.1/by-name/system  /system  #重新挂载系统目录

                 在执行 mount命令查看  已经修改为 可读写模式

                  

 

 

 问题四,文件夹内文件说明:

       keys文件内放置的是 自动登陆的公钥,和putty 上面用的私钥。linux ssh 无法使用

       bbc.sh 是建立常用命令链接的。不建议直接运行。因为有些命令已经存在,我开始直接运行的,并不会覆盖原有链接,不知道为什么

       ssh.sh 是用到的一些命令。

 

问题五: 有时候可能会建立linux 用户环境下面给出我用到的命令

1 echo "root:x:0:0::/root:/system/bin/sh" > /etc/passwd
2 echo "root::14531:0:99999:7:::" > /etc/shadow
3 echo "root:x:0:" > /etc/group
4 echo "root:!::" > /etc/gshadow
5 echo "/system/bin/sh" > /etc/shells
6 echo "PATH=\"/usr/bin:/usr/sbin:/bin:/sbin:/system/sbin:/system/bin:/system/xbin:/data/local/bin\"" > /etc/profile
7 echo "export PATH" >> /etc/profile

 

======================问题结束==============================

 

操作完成,测试SSH登陆已经自启动无问题后。可以删除 超级终端, re文件管理器,以及 360超级root (超级难删。。)