MAC 远程登录iPhone

SSH

  • secure shell 安全外壳协议,是一种可以为远程登录提供安全保障的协议.
  • 可以对传输的数据进行加密,中间人攻击,sniffer等无法造成篡改.防止DNS欺骗和IP欺骗.

OpenSSH

  • SSH协议的免费开源实现,可以通过OpenSSH的方式远程登iPhone.

SSH是通过TCP协议协议通信,要保证mac和iPhone在同一个局域网下
在mac的终端输入 ssh 账户名@主机地址

ssh [email protected]
The authenticity of host '192.168.50.222 (192.168.50.222)' can't be established.
RSA key fingerprint is SHA256:mK4IZVBBKdt/D2zd6250WBS58RNF7M8IWeUWTl+3VtY.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.50.222' (RSA) to the list of known hosts.
[email protected]'s password:

密码默认 alpine
iOS下有2个常用账户:

  • root:最高权限 $Home /var/root
  • mobile:普通权限,不能操作系统文件 $Home /var/mobile

退出帐号 终端输入 exit
更改密码 passwd

在cydia上安装OpenSSH的时候会先安装OpenSSL,也就是说OpenSSH是依赖于OpenSSL的 .

  • SSL 也是一种传输加密协议.
  • OpenSSL 则是其开源实现.

SSH 有2种版本

  • SSH1
  • SSH2

主机与服务端需要保持一致才能相互通信.可以通过查看Protocol字段来得知是第几种版本.

$ cd /etc/ssh
$ open -a xcode ssh_config

SSH通信过程

  • 建立安全连接
  • 客户端认证
  • 数据传输

建立安全连接

在建立安全连接的过程中,服务器会提供自己的身份证明.


image.png

如果客户端并无服务器端的公钥信息,就会询问是否连接此服务器.
在建立安全连接的过程中,如果服务器的身份信息发生变更.(eg.不同主机同一个IP),在确定要连接的情况下删掉之前保存的公钥信息即可.

  • ssh-keygen -R 服务器IP地址
  • vim ~/.ssh/known_hosts

客户端认证

SSH-2提供2种客户端认证方式

  • 基于密码的客户端认证
  • 基于密钥的客户端认证 (优先且更安全)

基于密钥的认证:


image.png
ssh-keygen

一路敲回车键(Enter)即可
OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
生成的公钥:~/.ssh/id_rsa.pub
生成的私钥:~/.ssh/id_rsa
复制到服务器中:

$ ssh-copy-id -i id_rsa.pub [email protected]

or手动复制scp命令.
复制客户端的公钥到服务器某路径

  • scp ~/.ssh/id_rsa.pub root@服务器主机地址:~
  • scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上
    上面的命令行将客户端的~/.ssh/id_rsa.pub拷贝到了服务器的~地址
    SSH登录服务器
  • ssh root@服务器主机地址
  • 需要输入root用户的登录密码

在服务器创建.ssh文件夹

mkdir .ssh

追加公钥内容到授权文件尾部

cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
删除公钥
rm ~/id_rsa.pub

备注: iPhone 默认22端口进行ssh通信.

USB进行SSH登录

下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)
usbmuxd 下载地址

将iPhone的22端口(SSH端口)映射到Mac本地的10010端口

cd ~/Documents/usbmuxd-1.0.8/python-client
python tcprelay.py -t 22:10010

加上-t参数是为了能够同时支持多个SSH连接

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

$ ssh root@localhost -p 10010

拷贝

scp -P 10010 ~/Desktop/1.txt root@localhost:~/test

即可连接.

Shell脚本

为了避免每次开发都要输入命令,将其封装成2个脚本
vim usb.sh回车
按i 输入
python ~/Downloads/usbmuxd-1.0.8/python-client/tcprelay.py -t 22:10010
按ESC 然后:wq保存退出.

vim usblogin.sh回车
按i 输入
ssh root@localhost -p 10010
按ESC 然后:wq保存退出.

你可能感兴趣的:(MAC 远程登录iPhone)