Mac远程登录到iOS设备

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

image.png

欢迎关注微信公众号: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: 简易的终端命令快捷菜单,官网:fitztrev.github.io/shuttle/

"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 并安装

Mac远程登录到iOS设备

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

vi ~/.inputrc

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

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

Mac远程登录到iOS设备

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

Mac远程登录到iOS设备

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

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

Mac远程登录到iOS设备

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

Mac远程登录到iOS设备

xunfengtekiiPhone:~ root# cat /etc/profile.d/localeutf8.sh
export LANG="en_US.UTF-8"

今天的文章Mac远程登录到iOS设备分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/15798.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注