FSA全栈行动 FSA全栈行动
首页
  • 移动端文章

    • Android
    • iOS
    • Flutter
  • 学习笔记

    • 《Kotlin快速入门进阶》笔记
    • 《Flutter从入门到实战》笔记
    • 《Flutter复习》笔记
前端
后端
  • 学习笔记

    • 《深入浅出设计模式Java版》笔记
  • 逆向
  • 分类
  • 标签
  • 归档
  • LinXunFeng
  • GitLqr

公众号:FSA全栈行动

记录学习过程中的知识
首页
  • 移动端文章

    • Android
    • iOS
    • Flutter
  • 学习笔记

    • 《Kotlin快速入门进阶》笔记
    • 《Flutter从入门到实战》笔记
    • 《Flutter复习》笔记
前端
后端
  • 学习笔记

    • 《深入浅出设计模式Java版》笔记
  • 逆向
  • 分类
  • 标签
  • 归档
  • LinXunFeng
  • GitLqr
  • AndroidUI

  • Android第三方SDK

  • Android混淆

  • Android仓库

  • Android新闻

  • Android系统开发

  • Android源码

  • Android注解AOP

  • Android脚本

  • AndroidTv开发

  • AndroidNDK

  • Android音视频

  • Android热修复

  • Android性能优化

  • Android云游戏

  • Android插件化

  • iOSUI

  • iOS工具

  • iOS底层原理与应用

  • iOS组件化

  • iOS音视频

  • iOS疑难杂症

  • iOS之Swift

  • iOS之RxSwift

  • iOS开源项目

  • iOS逆向

    • Mac远程登录到iOS设备
      • 安装OpenSSH
      • 账号
      • 远程登录
        • 方式一:账号密码
        • 方式二:免密码登录
      • USB连接设备
        • 1、安装 usbmuxd
        • 2、端口映射
        • 3、连接设备
      • 封装常用命令
      • 中文问题
    • Mach-O文件结构分析
    • iOS逆向 - 应用脱壳
    • iOS逆向 - 运行时分析(一)class-dump
    • iOS逆向 - 运行时分析(二)Cycript
    • iOS逆向 - 运行时分析(三)Frida
  • Flutter开发

  • 移动端
  • iOS逆向
LinXunFeng
2021-12-18
目录

Mac远程登录到iOS设备

欢迎关注微信公众号:[FSA全栈行动 👋]

# 安装OpenSSH

本文内容的前提是设备已越狱!

Secure Shell(SSH) 是建立在应用层基础上的安全协议,用于计算机之间的加密登录,可以在不安全的网络中为网络服务提供安全的传输环境

在 Cydia 搜索 OpenSSH ,找到后安装即可

OpenSSH

# 账号

root:最高权限账号,$HOME 为 /var/root

  • 账号:root
  • 密码:alpine

修改登录密码

  1. 登录 root 账号
  2. 修改 root 账号的密码,终端输入:passwd

# 远程登录

# 方式一:账号密码

前往iOS设备的 "设置" -> "Wi-Fi" 页面,找到当前已经连接的网络,查看其 IP 地址

IP地址

如上图显示的 IP 地址为 192.168.10.104,则在终端内输入:

ssh root@192.168.10.104

输入密码:alpine

ssh

# 方式二:免密码登录

相较于方式一,不用每次连接 SSH 时都提示输入密码

角色 设备 文件
客户端 Mac 公钥 ~/.ssh/id_rsa.pub
私钥 ~/.ssh/id_rsa
服务器端 iPhone 授权文件 ~/.ssh/authorized_keys

# 1、生成秘钥对

ssh-keygen -t rsa

# OpenSSH默认生成的是RSA密钥,-t 参数是指定密钥类型
# 所以上面的命令可以省略 -t 参数:ssh-keygen

# 2、将公钥上传至 iOS 设备

方式一:自动(推荐)

执行如下命令,输入密码即可

ssh-copy-id root@192.168.10.104

方式二:手动

# 该方式会直接覆盖 authorized_keys 文件
scp ~/.ssh/id_rsa.pub root@192.168.10.104:/var/root/.ssh/authorized_keys

scp id_rsa.pub

鉴于会将 authorized_keys 文件覆盖,所以最好还是先将 id_rsa.pub 上传到设备后再追加到 authorized_keys

# 上传公钥至 root 的家目录
scp ~/.ssh/id_rsa.pub root@192.168.10.104:~

# 登录 iOS 设备
ssh root@192.168.10.104

# 向 authorized_keys 追加内容
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

# 移除上传的公钥
rm ~/id_rsa.pub

authorized_keys追加内容

现在再次进行登录,便无须输入密码即可直接登录成功了

# 3、注意事项

如果 iOS 设备上不存在 /var/root/.ssh 目录,会报如下错误

scp: /var/root/.ssh/authorized_keys: No such file or directory

需要先登录设备创建该目录

xunfengteki-iPad:~ root# cd /var/root/
xunfengteki-iPad:~ root# mkdir .ssh

如果在经过配置后还是要求输入密码,那可能是文件的权限不足,需要登录到 iOS 设备后,按如下命令对这些文件或目录进行权限调整即可

chmod 755 ~
# 设置 .ssh 目录权限
chmod 755 ~/.ssh
# 设置 authorized_keys 权限
chmod 644 ~/.ssh/authorized_keys

# USB连接设备

前面所提及的都是通过 Wi-Fi 方式连接设备,这种方式会有个很大的弊端,那就是当网络不通畅时会卡顿,为了保证传输速度,可以通过 USB 连接的方式解决这个问题

# 1、安装 usbmuxd

brew install usbmuxd

# 2、端口映射

本地端口 2222 映射 远程端口 22

iproxy 2222 22 [设备UDID]

如果有多台 iOS 设备连接到同一台 Mac 上,则需要在命令后面加上设备的 UDID,如果只有一台时,则可省略

# 3、连接设备

ssh -p 2222 root@127.0.0.1

USB连接

# 封装常用命令

Shuttle: 简易的终端命令快捷菜单,官网:http://fitztrev.github.io/shuttle/ (opens new window)

"iOS": [
  {
    "USB连接iPhone": [
      {
        "cmd": "iproxy 2222 22",
        "inTerminal": "new",
        "name": "1.USB映射SSH端口"
      },
      {
        "cmd": "ssh root@localhost -p 2222",
        "inTerminal": "new",
        "name": "2.连接iPhone"
      }
    ]
  }
]

效果:

shuttle

现在只需要按顺序点击 iOS -> USB连接iPhone 下的 1.USB映射SSH端口 和 2.连接iPhone,即可快速使用 usb 连接我们的 iOS 设备,提升效率。

# 中文问题

iOS 的终端在默认情况下是不支持中文的输入和显示,当你输入中文时会自动清空当前输入的所有内容。

解决方案:在家目录下新建 .inputrc 文件

touch ~/.inputrc

文件内容:

# 不将中文字符转化为转文序列
set convert-meta off

# 允许向终端输出中文
set output-meta on

# 允许向终端输入中文
set meta-flag on
set input-meta on

如果想要 iOS 设备的终端上编辑文件内容,需要在 Cydia 搜索 Vi IMproved 并安装

安装完成后,在终端输入:

vi ~/.inputrc

按 i 切换到输入模式,将上述文件内容粘贴进去,按 Esc 切换到末行模式,输入 :wq 回车保存退出。

现在中文是可以输入了,但是显示还是有问题的,比如我创建了一个 测试.txt,显示的是 \346\265\213\350\257\225.txt

解决方案:通过 Cydia 搜索 Locale Profiles in UTF-8 并安装即可(软件源 BigBoss:http://apt.thebigboss.org/repofiles/cydia/)

这时退出 iOS 终端,还重新进入即可解决!

点击详情页底部的 文件系统内容

可以看到该插件帮我们在 /usr/share/locale 目录下安装了中文语言包,并在 /etc/profile.d/ 目录下创建了 localeutf8.sh 文件,设置当前语言为 en_US.UTF-8

xunfengtekiiPhone:~ root# cat /etc/profile.d/localeutf8.sh
export LANG="en_US.UTF-8"
#iOS#逆向
上次更新: 2025/06/15, 11:36:32
ReactorKit + RxDataSources列表多次刷新的解决方案
Mach-O文件结构分析

← ReactorKit + RxDataSources列表多次刷新的解决方案 Mach-O文件结构分析→

最近更新
01
Flutter - GetX Helper 如何应用于旧页面
06-14
02
Flutter - GetX Helper 助你规范应用 tag
06-08
03
Flutter - Xcode16 还原编译速度
04-05
更多文章>
Theme by Vdoing | Copyright © 2020-2025 FSA全栈行动
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×