通过SSH连接iOS设备的几种方法

通过SSH连接iOS设备的几种方法,第1张

如果wifi连接iPhone设备一直失败怎么办?

我们可以借助 usbmuxd 这个工具通过USB连接。

usbmuxd 是苹果的一个服务,这个服务主要用于在USB协议上实现多路TCP连接,将USB通信抽象为TCP通信。苹果的iTunes、Xcode,都直接或间接地用到了这个服务。它提供了一个USB - TCP的转换服务。

这样当前连接设备的22端口(SSH端口)映射到电脑的1234端口,因此想和设备通信,直接和本地端口1234通信就可以了。

如果你还是连不上设备,那就打开i4助手-工具箱-打开SSH通道。当然前提是设备已经安装了OpenSSH。

以下为翻译内容

为了获取设备上安装的所有app列表:

输出类似内容如下:

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

显示某个app的属性,你可以使用下面的命令

输出类似内容如下:

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

备注:

显示某个app的属性值,你可以使用下面的命令

举例,如果你想获取苹果天气app的安装路径,你可以使用 path 属性:

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

备注:

安装一个app到设备,你可以这样做:

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

备注:

卸载一个app,你需要提供 bundle identifier

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

备注:

假如你的app建立了一个监听某个端口的TCP server,通过USB访问这个端口是非常有用的(无需通过WIFI/3G)。设备允许你建立一个通道在电脑和设备之间通过USB接口,你通过访问电脑上的某个端口,手机会将这个连接转到具体的监听端口通过如下命令:

如果先前的例子视图解释和说明Mac‘s TCP 端口 8080 和设备的TCP端口80,内容输出如下

如此你可以通过 telnet localhost 8080 和手机端开启的TCP 80端口服务进行通信

为了精准的获取某个设备,你也可以追加 -u <udid> 标记,如下

备注:

这是一个公共命令,跟 MobileDevice Framework没有关系。为了获取标示符(eg commycompanymyapp)你可以使用如下命令,必须是一个可用的app文件不是ipa!)

备注:

找到一个bug? 或者想增加一个功能?
你可以fork这个工程,并且给我提一个合入申请

mobiledevice使用的是MIT 授权
>简要记录终端常用命令,方便后续查看。

1、otool
参数:-L [要查看的文件路径]
作用:能查看该文件引用了哪些库

2、lipo
(1)参数:-info [要查看的文件路径]
作用:能查看该文件包含了哪些架构

(2)参数:-remove [真机或者模拟器架构] [二进制文件文件名] -o [二进制文件文件名]
如:lipo -remove x86_64 AipBase -o AipBase
使用场景:当一个库( framework )同时包含了真机(常见的真机架构如:arm64、arm64e)或者模拟器架构(常见的模拟器架构如:i386、x86_64)时,很容易就会出现问题。比如无法用Xcode导出 ipa 包,Xcode 会报 IPA processing failed 的错误。此时如果没有库的源码,无法重新编绎重新生成目标架构的库时,则可以使用该命令,去掉真机或者模拟器的架构,再重新打包即可。
作用:直接对库进行 *** 作,去掉库中不需要的架构,重新生成包含目标架构的库。

3、security cms
参数:-D -i [要查看的描述文件路径]
作用:能查看描述文件的详细信息,包括对应的证书信息、过期时间等

4、grep
使用举例:grep "[要定位的字符串]" -R -i
作用:在指定目录查找该目录下是否包含要定位的字符串,-R -i 忽略大小写

5、strings
使用举例:strings [要查看的二进制文件路径]
作用:能在二进制文件中查找可打印的字符串

6、clear
作用:清屏

7、certtool d
使用举例:certtool d testcer
结合security cms -D -i 查看描述文件对应的证书信息

8、ideviceinstaller
使用举例: ideviceinstaller -i /Users/pilipala/Desktop/Test/2022-05-13_14-09-54/Testipa
作用:安装ipa到手机、查看安装失败日志

ios如何连接:

打开“菜单”,选择“设置”,根据安卓系统的不同,打开“无线&有线网络”或“无线控制”选项,选择“设置”,选择“添加”,根据协议不同,可选择“添加 PPTP ”或“添加L2TP/IPsec PSK ”。详细信息参考下文的“小提示”。

选择“名”,然后输入的描述性名称。描述性名称可随意选择。选择“设置服务器”,输入服务器IP地址。 设定加密。和你的运营商联系,看看你的连接是否加密。打开菜单,然后选择“保存”。

你可能需要确认储存密码。这个密码是安卓设备的密码,而不是密码,打开菜单,然后选择“设置”。选择“无线和网络”或“无线控制”。

从列表中选择你创建的配置。输入用户名和密码,选择“记住用户名”和“连接”,然后就可以连接到了。顶栏会出现一个钥匙图标,表明已经连接成功。

发展历程:

2007年1月9日苹果公司在Macworld展览会上公布,随后于同年的6月发布第一版iOS *** 作系统,最初的名称为“iPhone Runs OS X”。

2007年10月17日,苹果公司发布了第一个本地化iPhone应用程序开发包(SDK),并且计划在2月发送到每个开发者以及开发商手中。

2008年3月6日,苹果发布了第一个测试版开发包,并且将“iPhone runs OS X”改名为“iPhone OS”。

2008年9月,苹果公司将iPod touch的系统也换成了”iPhone OS“。

OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。 SSH协议可以用来进行远程控制, 或在计算机之间传送文件。

OpenSSH连接(登录)手机

1 在cydia 中安装OpenSSH 包

2 打开手机wifi设置

3 连接wifi

4 读取ip地址

5 打开终端

6 运行命令 ssh root@你的ip

7 输入密码: alpine (可以自定义)

ssh 到你的 iPhone,修改 root/mobile 两个权限下的密码。默认密码是 alpine,使用 passwd 命令修改密码。

修改 root 权限密码

likid$ ssh root@19216818167 // use root role to login

The authenticity of host '19216818167 (19216818167)' can't be established

RSA key fingerprint is SHA256:xxx

Are you sure you want to continue connecting (yes/no) yes

Warning: Permanently added '19216818167' (RSA) to the list of known hosts

root@19216818167's password: // enter original passwordalpine

iPhone:~ root# passwd // change password command

Changing password for root

New password: // enter your new password

Retype new password: // again

iPhone:~ root#exit // logout

logout

Connection to 19216818167 closed

修改 mobile 权限密码

Likid$ ssh mobile@19216818167 //use mobile role to login

mobile@19216818167's password: // enter original passwordalpine

iPhone:~ mobile$ su root

Password:

iPhone:/var/mobile root# cd 

iPhone:~ root# passwd mobile

Changing password for mobile

New password:

Retype new password:

iPhone:~ root#exit

logout

Connection to 19216818167 closed

SSH公钥登录的前提是已经登录过SSH

SSH公钥登录的原理

Mac电脑将自己的公钥发给远程的手机

手机随机生成的一段字符串, 发给Mac电脑

Mac电脑利用私钥加密字符串

手机利用公钥解密字符串

SSH公钥登录步骤:

1 cd  ~/ssh 目录下 (ls 查看当前路径下文件)

Snip20180602_1png

2 ssh-keygen 创建RSA 密钥

ssh-keygen

使用上述命令创建 RSA的公钥和私钥

输入命令之后, 一路回车就可以, 生成下图中两个私钥 id_rsa 和公钥 id_rsapub

生成密钥

3 ssh-copy-id root@1921681102 拷贝密钥到服务器

ssh-copy-id root@1921681102

这里的ip是你手机wifi的ip地址, 会将文件拷贝到 ~/ssh/ 目录下

中间会需要你输入链接服务器(手机)的密码

密码默认是: alpine (在OpenSSH源中可以看到)

5 ssh root@1921681102 登录SSH

ssh root@1921681102

苹果有一个服务,叫usbmuxd,这个服务主要用于在USB协议上实现多路TCP连接

USB 登录需要端口映射,目前有两种方式映射

Python脚本 tcprelay 端口映射:

# 将本地的12345端口映射到设备的TCP端口22# -t 表示能够同时支持多个SSH连接HanDaDaMacBook-Air:~ HanDaDa$python tcprelaypy -t 22:12345

Iproxy端口映射

# 安装libimobiledevice工具 或者usbmuxd

HanDaDaMacBook-Air:~ HanDaDa$brew install libimobiledevice 

或者

HanDaDaMacBook-Air:~ HanDaDa$brew install usbmuxd 

# 映射端口HanDaDaMacBook-Air:~ HanDaDa$iproxy 12345 22

以上两种方式成功后皆可通过以下SSH连接登录手机

# ssh连接本地的端口12345,由于做了端口映射,所以会通过usb连接对面设备的22端口。# 127001 是IP地址# -p 表示端口号HanDaDaMacBook-Air:~HanDaDa$ssh-p12345root@127001

!!!注意:要想保持端口映射状态,不能终止此命令行(如果要执行其他终端命令行,请新开一个终端界面),不一定非要10010端口,只要不是保留端口就行

端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了

新开一个终端界面,SSH登录到Mac本地的12345端口(以下方式2选1)

ssh root@localhost -p 12345

ssh root@127001 -p 12345

localhost是一个域名,指向的IP地址是127001,本机虚拟网卡的IP地址

usbmuxd会将Mac本地10010端口的TCP协议数据,通过USB连接转发到iPhone的22端口
也可以用itnl工具来实现端口转发

wangguanxiao-2:~ apple$ itnl --iport 22 --lport 10010

[INFO]Waiting for new TCP connection on port 10010

[INFO]Waiting for device

[INFO]Device connected: a7aee83045805b75336d38faec08a3b73b6d49d1 - Ignoring(non-USB)

[INFO]Device connected: a0370fce4f5755310d2a26b020b989c59d9780aa - Ignoring(non-USB)

[INFO]Device connected: a0370fce4f5755310d2a26b020b989c59d9780aa

>Vps使用 *** 作
1打开远程桌面登陆器:
开始-----运行-----mstsc 
或者 开始——所以程序——附近——远程桌面连接
2 造成帐户卡死的情况分为多种
第一种客户端同时登陆,造成帐户卡死
第二种,某一帐户在运行某些程序的中途退出远程
第三种某些单用户限制程序被同一系统管理员同时运行
3 不要安装第三方防火墙
  如果您需要防火墙,请使用windows自带的防火墙功能,在VPS里安装第三方防火墙会 造成VPS系统崩溃和数据丢失系统会自动获取最新windows补丁并自动进行安装,无需人工干预,在VPS里安装系统补丁,严重时会导致VPS系统崩溃和数据丢失
 不要修改远程桌面连接端口
由于VPS系统的特殊性,默认远程桌面端口为3389,不可随意更改,否则会无法进行远程连接
4除了某些程序必须在用户登陆的情况下运行的情况外, 建议退出远程连接时注销用户, 能节省内存资源, 并防止下次登陆出现超出最大连接数的情况 如果出现超出最大连接数的情况, 可以重起VPS
5VPS交付使用时已经做了相关的安全设置, 安全性比较高, 建议不要随便开启防火墙, 如果自己开启防火墙, 也一定要打开以下必要端口:21(FTP), 3389(远程连接), 80(网站>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13384863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存