手机完成了越狱,我们的目的肯定不止为了越狱的。我们越狱过后是拿到了手机的root权限,通过这个root权限能干什么?能干的事情有很多,但是我们首先需要连接我们的手机吧,否则啥也干不了。
于是,产生了OpenSSH这个插件。我们就是使用这个插件来对手机进行连接的。
这篇文章主要介绍如何连接手机,连接的原理,当然还有后面的连接后的一些基本使用。
OpenSSH插件
在Cydia中搜索OpenSSH,安装就ok了。
连接手机
- 通过插件使用Wifi连接手机:ssh 用户名@手机IP地址
$ssh root@192.168.31.231
- 默认密码:alpine
首次连接是显示是否需要保存key,输入yes就行了。
iOS 下两个用户:Root、mobile
- Root用户:最高权限用户,可以访问任意文件
- Mobile用户:普通用户,只能访问改用户目录下文件/var/Mobile
修改密码
从我们的插件中我们能够找寻到SSH的默认密码是alpine,当我们手机中安装了这个插件,别人使用电脑就能够远程连接我们的手机了。所以还是建议修改一下。
- 登录mobile $ssh mobile@ip
- 修改密码:$passwd,输入旧密码,输入两次新密码
这里需要注意,root用户可以修改mobile密码,也可以修改root密码,但是mobile用户只能修改mobile密码。
提醒:
root密码一定要记住,否则很难找回来。
OpenSSH 原理
OpenSSH 是 SSH(Secure SHell)协议的免费开源实现。SSH协议可以用来进行远程控制,或在计算机之间传送文件。
SSH
SSH是一种网络协议,用于计算机之间的加密登录。
1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
OpenSSH
它是一款软件,应用非常广泛,基于SSH实现的。
中间人攻击(Man-in-the-middle attack)
存在一种隐患
- 如果有人冒充服务器,将生成的虚假公钥发给客户端,那么它将获得客户端连接服务器的密码。
- 中间人拿到密码过后,就可以使用服务器给的公钥,冒充客户端登录服务器。
解决方案
还记得上面我们第一次登录的时候,有给我们提示是否需要保存key吗,其实这个key就是iPhone生成的公钥的hash值。
- 第一次登录保存iPhone(服务器)生成的公钥hash值
- 下次登录如果有公钥hash,我们就将之与本地hash进行对比
- 相同,就通过
- 否则,视为中间人攻击
- 那么第一次获取hash怎么办呢,因为用户也不知道是不是来自于真的iPhone
- 一般服务器会将这个公钥公布到网上,用户自行对比,如果相同,才视为真实
免密登录
免密码登录也称“公钥登录”,原理就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录不再要求密码。
- 客户端在~/.ssh/目录下生成公钥 $ssh-keygen
- 拷贝公钥给SSH服务器 $ssh-copy-id 用户名@服务器IP
- 直接登录,发现已经不用输入密码了
便捷登录,配置别名
现在我们登录,需要输入用户名@IP,其实我们是可以设计别名的,以后只需要使用别名就可以登录了。
1、来到电脑的 ~/.ssh 目录下
2、在~/.ssh 目录下创建一个config文件。内部配置ssh登录的别名
- Host 别名
- Hostname IP地址
- User 用户名
- Port 端口号
3、exit 用户,输入 $5s_company 完成
USB连接
上面使用SSH协议,完成的了WiFi连接,但是更快和更稳定还是一般使用USB连接。
苹果有一个服务,叫usbmuxd,这个服务主要用于在USB协议上实现多路TCP连接。
首先拿到这个脚本,可以去网上寻找;SSH 的默认端口号是22。
Python脚本端口映射:
- python -t 22:12345
- 将本地的12345端口映射到设备的TCP端口22.这样就可以通过本地的12345端口建立连接了。
- 通过USB进行SSH连接
- ssh -p 12345 root@127.0.0.1
ssh连接本地的12345,由于做了端口映射,所以会通过usb连接对面设备的22端口。
第一次连接同样会出现保存秘钥,这样我们就通过USB进行连接了。
方便登录
1、将USB写进config,生成别名,快速登录。
- cd ~/.ssh:进到所在config目录
- vim config
2、写成脚本
因为上面我们就算写成了config,但是还是需要先映射Python脚本,所以这里直接写成脚本,先进行映射,然后直接登录。
- 写一个连接脚本
- 写一个登录脚本 u
- 直接运行脚本
拷贝文件
拷贝文件在越狱中是时常遇到,是我们必须要掌握的技能。
拷贝有两种,WiFi拷贝和USB拷贝,命令非常简单。
- WiFi拷贝 $scp root@手机IP:文件目录 目标文件目录
- 将手机中~目录下的123.txt拷贝到电脑当前目录: $scp root@10.0.0.9:~ .
- 将电脑中的123.txt拷贝到手机中指定目录: $scp 123.txt root@10.0.0.9:~/
- USB拷贝 $scp -P 本地映射端口 root@127.0.0.1:文件目录 目标目录
- 将root用户下的~目录下的123.txt文件拷贝到电脑的当前目录:$scp -P 12345 root@127.0.0.1:~ .
- 将电脑当前目录下123.txt拷贝到手机~目录中:$scp -P 12345 123.txt root@127.0.0.1:~/
Iproxy 端口映射
其实端口映射除了上面介绍的Python脚本,还可以通过Iproxy 进行,使用起来非常简单。
安装libimobiledevice工具
- $ brew install libimobiledevice
映射端口
- iproxy 12345 22
总结
SSH帮助我们连接手机,有两种方式,WiFi和USB。
主要是这几块内容:
- OpenSSH的使用方式;
- SSH的登录原理;
- 连接和登录的方式优化(分为WiFi和USB);
- 文件的拷贝。
后面我将介绍更多好用的工具和知识,帮我们在越狱环境下进行调试。