目录
先在cydia上面下载openSSH软件
wifi连接手机
登录手机root用户
先把手机和电脑放在同一个wifi地址下.查看手机ip地址在iphone的 设置->wifi->点击连接后的wifi,找到ip地址,如下图的IP地址是:192.168.1.5
打开mac的终端登录:
ssh root@加ip地址
ssh root@192.168.1.5
首次登录会提示是否连接,选择yes
The authenticity of host '192.168.1.5 (192.168.1.5)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
然后提示输入密码
默认密码
openSSH安装后默认密码是:alpine
输入以后登录成功提示符会变成root#如下:
tandeyueyu6s:~ root#
修改openSSH的默认密码
修改密码,否则别人也会用这个密码跟你在同一个wifi下登录你的手机,对你的手机进行各种操作,例如rm -rf删除手机文件
输入指令:passwd
passwd
让你输入2次新密码如下,输入是看不见的,要盲打2次
tandeyueyu6s:~ root# passwd
Changing password for root.
New password:
Retype new password:
tandeyueyu6s:~ root#
exit 退出root
重新登录实验新的密码是否生效,输入exit是退出用户,然后重新登录,输入新的密码
exit
退出以后使用 ssh root@192.168.1.5 重新登录,如下
tandeyueyu6s:~ root# exit
logout
Connection to 192.168.1.5 closed.
tdw@bogon ~ % ssh root@192.168.1.5
root@192.168.1.5's password:
tandeyueyu6s:~ root#
进入根目录查看文件
cd /
ls
运行结果如下,看到手机根目录下的所有文件:
tandeyueyu6s:/var root# cd /
tandeyueyu6s:/ root# ls
Applications/ Library/ User@ boot/ dev/ lib/ private/ tmp@ var@
Developer/ System/ bin/ cores/ etc@ mnt/ sbin/ usr/
usb连接手机
下载usbmuxd
地址如下:
https://cgit.sukimashita.com/usbmuxd.git/snapshot/usbmuxd-1.0.8.tar.gz
解压以后,找到python-client目录下的这2个文件,tcprelay.py usbmux.py其他不要
查看ssh默认端口是否是22
openSSH默认端口是22,如果不是可以通过查看下面文件找到端口:
查看手机文件: etc/ssh/sshd_config 打开这个文件 .
看到里面有这句话:#Port 22 ,代表是22端口访问
使用python文件把手机的22端口映射到本地的端口
从0到65535中选择一个端口,这个端口要选别的服务不用的,例如我选一个2万:20000
打开上面py文件所在目录,执行python
python tcprelay.py -t 手机端口:本地端口
-t是多台设备
如下
python tcprelay.py -t 22:20000
执行完以后窗口提示转发本地端口20000到远端端口22,这个终端窗口不要关闭,一直开着才能一直转发端口
tdw@bogon usbmuxd % python tcprelay.py -t 22:20000
Forwarding local port 20000 to remote port 22
用本地的端口登录手机
先用数据线把手机电脑连上
-再打开一个新的终端标签,用usb链接手机
使用 ssh -p端口号 加root@localhost,localhost可以用127.0.0.1代替
如下:
ssh -p 20000 root@localhost
运行结果如下,第一次登录问你是否连接,输入yes,然后输入密码
tdw@bogon ~ % ssh -p 20000 root@localhost
The authenticity of host '[localhost]:20000 ([127.0.0.1]:20000)' can't be established.
RSA key fingerprint is SHA256:hn+9IZyzuEJolhQ70F/neNk1kCg6jfmejgFvQhQsQd8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:20000' (RSA) to the list of known hosts.
root@localhost's password:
tandeyueyu6s:~ root#
通过rsa建立公钥私钥,进行免密码登录,这个跟git上的免密码操作是一样的
在本地生成rsa秘钥对
终端输入指令
ssh-keygen
这个指令输入完以后,会提示你输入文件保存名字和路径,默认是/Users/tdw/.ssh/id_rsa ,因为我已经有这个默认文件了,保存的是我git上面用的rsa秘钥对,所以我这次就不用执行这条命令ssh-keygen了.如果是之前没有就像下面这样执行:输入ssh-keygen
然后需要你输入2次密码,这个密码先输入2次回车
下图是运行结果
tdw@bogon ~ % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tdw/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/tdw/.ssh/id_rsa.
Your public key has been saved in /Users/tdw/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fOu5HZfc8lIyTZoFPdNY8CoXoXPbENuMVTXcNUtQTp4 tdw@bogon
The key's randomart image is:
+---[RSA 3072]----+
| .B@%|
| .B&O|
| o *E*|
| . o *o|
| S . . +*.|
| . . +=oo|
| . . =+.|
| . o o.o |
| +.. ..|
+----[SHA256]-----+
会多出下面2个文件
设置手机上wifi链接的免密码登录
ssh-copy-id 用户名@IP地址
复制自把己的公钥id追加到服务器尾部
ssh-copy-id root@192.168.1.5
运行结果如下,下面提示的是用我本地的文件/Users/tdw/.ssh/id_rsa.pub,替换手机上的秘钥,因为我之前已经在手机上复制了秘钥,所以提示我是否覆盖,直接按回车,选择是
tdw@bogon ~ % ssh-copy-id root@192.168.1.5
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/Users/tdw/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: WARNING: All keys were skipped because they already exist on the remote system.
(if you think this is a mistake, you may want to use -f option)
现在我们在登录 root就不需要输入密码了,直接输入,不会提示让你输入密码了,运行结果如下:
tdw@bogon ~ % ssh root@192.168.1.5
tandeyueyu6s:~ root#
设置usb链接的免密码登录
首先用上面的方法登录本地的usb端口,我上面例子设置的是本地20000端口,执行python脚本tcprelay.py.把20000端口转发到22端口
python tcprelay.py -t 22:20000
然后这个窗口不要关闭.新开一个窗口登录20000端口
ssh -p 20000 root@localhost
因为刚才wifi已经设置了ssh-copy-id root@192.168.1.5 ,把rsa的公钥复制到了手机上,所以现在用usb链接,也不需要输入密码了,执行结果如下:
tdw@bogon ~ % ssh -p 20000 root@localhost
tandeyueyu6s:~ root#
登录20000端口直接就登录root账户了,不需要输入密码
下面cd进入根目录ls查看手机上的所有文件,发现所有手机上的文件都能用ssh访问
tandeyueyu6s:~ root# cd /
tandeyueyu6s:/ root# ls
Applications/ Library/ User@ boot/ dev/ lib/ private/ tmp@ var@
Developer/ System/ bin/ cores/ etc@ mnt/ sbin/ usr/
shell脚本制作
因为每次登录要执行2条命令:
第一条是用usb连接手机,把本地端口20000转发到22端口
python tcprelay.py -t 22:20000
再新开一个窗口执行登录
ssh -p 20000 root@localhost
可以这2条命令存成2条shll脚本
新建文件usb.sh
内容是:
python tcprelay.py -t 22:20000
再新建一个login.sh,内容是:
ssh -p 20000 root@localhost
然后每次登录之前执行2条命令:
sh usb.sh
然后新开一个窗口执行
sh login.sh
这样可以缩短每次输入命令的长度