一、SSH介绍:SSH、OpenSSh
SSH 为Secure Shell 的缩写,意为“安全外壳协议”;SSH 为建立在应用层基础上的安全协议。
SSH是一种可以为 远程登录 提供安全保障的协议
-
使用SSH,可以把所有传输的数据进行加密,“中间人”攻击方式就不可能实现,能防止DNS欺骗和IP欺骗
-
OpenSSH
- 是SSH协议的免费开源实现
- 可以通过OpenSSH的方式让Mac远程登录到iPhone
二、在越狱iPhone上安装OpenSSH
- 在iPhone上通过Cydia安装OpenSSH工具(软件源http://apt.saurik.com)
三、Mac远程登录到iPhone
1、SSH是通过TCP协议通信,所以要确保Mac和iPhone在同一局域网下,比如连接着同一个WiFi
- 在Mac的终端输入
ssh 账户名@服务器主机地址
比如:ssh root@192.168.1.1
账户名包含:root权限、mobile权限
-
初始密码:alpine
-
查看主机地址
四、SSH通信
SSH通信分3大主要阶段
- 建立安全连接
- 客户端认证
- 数据传输
1、建立安全连接
当客户端确认要连接某个服务器时,服务器会提供自己的身份证明给客户端(其中包含服务器的公钥)
2、客户端认证
SSH-2提供了2种常用的客户端认证方式,SSH-2默认会优先尝试“密钥认证”,如果认证失败,才会尝试“密码认证”
- 1.基于密码的客户端认证
-
使用账号和密码即可认证
-
使用账号和密码即可认证
- 2.基于密钥的客户端认证
- 免密码认证
-
最安全的一种认证方式
-
在客户端生成公钥和私钥
-
上传客户端公钥到服务器
-
免密码登录
小结:
使用ssh-copy-id root@服务器主机地址 把客户端的公钥内容追加到服务器的授权文件(~/.ssh/authorized_keys)尾部
ssh-copy-id会将客户端~/.ssh/id_rsa.pub的内容自动追加到服务器的~/.ssh/authorized_keys尾部
- 3.手动上传客户端公钥到服务器的授权文件
-
3.1手动拷贝客户端公钥到服务器
-
3.2手动追加客户端公钥到服务器授权文件中,之后删除拷贝到服务器中的客户端公钥文件
-
3.3免密码登录成功
-
3.1手动拷贝客户端公钥到服务器
小结:
- 复制客户端的公钥到服务器某路径
- scp ~/.ssh/id_rsa.pub root@服务器主机地址:~
- scp是secure copy的缩写,是基于SSH登录进行安全的远程文件拷贝命令,把一个文件copy到远程另外一台主机上
- cat ~/id_rsa.pub >> ~/.ssh/authorized_keys追加公钥内容到授权文件尾部
3、数据传输
1、WiFi传输
- 端口是设备对外提供服务的窗口,每个端口都有一个端口号共65535个
- 有些端口号是保留的,已经规定了用途,比如
- 21端口:提供FTP服务
- 22端口:提供SSH服务
- 80端口:提供HTTp服务
- 更多保留端口号
- iPhone默认使用22端口进行SSH通信,采用的是TCP协议;这样在我们连接iPhone后在终端输入命令的时候如果网速不好时,特别卡
2、USB进行传输
默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式SSH登录到iPhone,要求iPhone必须连接同一个WiFi;为了加快传输速度,也可以通过USB连接的方式进行传输
-
1.执行脚本把iPhone22端口映射到客户端10010端口
-
2.通过登录客户端的10010端口来登录iPhone,并且传输数据时,只需传给客户端10010端口就可以了
小结:
- 将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
- 这个端口可以是一个没有被使用或保留使用的任意端口
- 执行映射脚本是加上-t参数是为了能够同时支持多个SSH连接
- 端口映射完毕后,以后如果想跟iPhone的22端口通信,直接跟Mac本地的10010端口通信就可以了
- 新开一个终端界面,SSH登录到Mac本地的10010端口使用如下方式
- ssh root@localhost -p 10010
- ssh root@127.0.0.1 -p 10010
- 远程拷贝文件也是可以直接跟Mac本地的10010端口通信的,比如:将Mac上的/Desktop/a.txt文件,拷贝到iPhone上的/test路径
scp - P 10010 ~/Desktop/1.txt root@localhost:~/test
scp 的端口号参数是大写的-P