越狱的笔记-环境的搭建

电脑通过ssh连接手机

  ssh [email protected]

192.168.1.35为手机的ip地址,root为用户级别,root为最高权限,还有mobile,连接mobile用户,可以使用下面的指令,原始密码为alpine, ssh root@服务器主机地址

ssh [email protected]

退出连接

exit

以上可以通过iPhone:~ root#和iPhone:~ mobile$中,#$可以区分开是最高权限用户,还是普通用户,“#”一般代表最高用户,“$”一般代表不是最高用户

修改root权限的密码

//修改root下的密码
passwd

修改mobile用户的密码

//修改mobile下的密码
passwd mobile
ssh的使用图片

通过Cydia安装的安装包是deb格式的(结合软件包管理工具apt),通过pp助手或其他的安装包是ipa格式的

  • 1.如果通过Cydia源安装deb失败,可以从网上下载deb格式的安装包,
  • 2.然后将deb安装包放到/var/root/Media/Cydia/AutoInstall
  • 3.重启手机,Cydia会自动安装deb

如果自己手机上没有这个AutoInstall文件夹,可以自己创建一个,cd到/var/root/Media/Cydia路径下,使用mkdir 创建文件夹,可以用rm删除文件夹

使用rm既可以删除文件又可以删除文件夹
删除文件夹(无论文件夹是否为空),使用 -rf 命令即可。
即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思

删除文件夹实例:
rm -rf  AutoInstall

查看当前路径的方法

pwd
echo $HOME

SSH

ssh为Secure Shell的缩写,意为“安全外壳协议”,是一种可以为远程登录提供安全保障的协议

OpenSSH

  • 是ssh协议的免费开源实现
  • 可以通过OpenSSH的方式让Mac远程登录到iPhone

SSL

  • SSL为Secure Sockets Layer的缩写,是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密

Open SSL

  • SSL的免费开源实现
  • 绝大部分HTTPS请求等价于:HTTP + OpenSSL
  • OpenSSH的加密就是通过OpenSSL完成的

SSH的版本

  • SSH协议一共2个版本
    SSH-1
    SSH-2

现在用的比较多的是SSH-2,客户端和服务端版本要保持一致才能通信

查看SSH版本(查看配置文件的Protocol字段)

客户端:/etc/ssh/ssh_config
服务端:/etc/ssh/sshd_config

查看config

 cat ssh_config

SSH的通信过程可以分为3大主要阶段

- 建立安全连接

  • 在建立安全连接过程中,服务器会提供自己的身份证明,服务器会把公钥发送到客户端,客户端把服务端的公钥信息,存储在~/.ssh/known_hosts
    服务器提供身份证明

查看客户端存储的服务端的公钥信息

cat known_hosts

gitee.com,218.11.0.86 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMuEoYdx6to5oxR60IWj8uoe1aI0X1fKOHWOtLqTg1tsLT1iFwXV5JmFjU46EzeMBV/6EmI1uaRI6HiEPtPtJHE=
192.168.1.9 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtWSE5z6M/rWldIo6XaN4jdjaO380Mh5cN4G0D8l8tjWb+SFGxv4EoZm3t+MaI19KbIXT4np4sE/nBhH35Ar7VRv8vta3ZXgBcecAhj+SNhuG66anzkDhPQbyuxI3xX9E/MAtrc1VGxeqFcUyJp/nBkSeqIIv9VnwET2dbvR7xmvRn9GcKL8E1nR6yzPb5mUCcae5QjMnFDYwxrwhiXiLH591V3zZJdxM4hTBh1z8f1tysJMet3VVsGEWFivAg4JKQaa8i8bD0NcoYzM2KyTlVcesltUbjY4gr9CUDwBWtkdZGA0qDg37beNtqC29IKhqwtbKWqA7OAEQ0mx01nT09
192.168.1.212 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtWSE5z6M/rWldIo6XaN4jdjaO380Mh5cN4G0D8l8tjWb+SFGxv4EoZm3t+MaI19KbIXT4np4sE/nBhH35Ar7VRv8vta3ZXgBcecAhj+SNhuG66anzkDhPQbyuxI3xX9E/MAtrc1VGxeqFcUyJp/nBkSeqIIv9VnwET2dbvR7xmvRn9GcKL8E1nR6yzPb5mUCcae5QjMnFDYwxrwhiXiLH591V3zZJdxM4hTBh1z8f1tysJMet3VVsGEWFivAg4JKQaa8i8bD0NcoYzM2KyTlVcesltUbjY4gr9CUDwBWtkdZGA0qDg37beNtqC29IKhqwtbKWqA7OAEQ0mx01nT09
192.168.1.35 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtWSE5z6M/rWldIo6XaN4jdjaO380Mh5cN4G0D8l8tjWb+SFGxv4EoZm3t+MaI19KbIXT4np4sE/nBhH35Ar7VRv8vta3ZXgBcecAhj+SNhuG66anzkDhPQbyuxI3xX9E/MAtrc1VGxeqFcUyJp/nBkSeqIIv9VnwET2dbvR7xmvRn9GcKL8E1nR6yzPb5mUCcae5QjMnFDYwxrwhiXiLH591V3zZJdxM4hTBh1z8f1tysJMet3VVsGEWFivAg4JKQaa8i8bD0NcoYzM2KyTlVcesltUbjY4gr9CUDwBWtkdZGA0qDg37beNtqC29IKhqwtbKWqA7OAEQ0mx01nT09

查看服务端的公钥信息,1.先连接到手机,2. cd 到/etc/ssh路径下

cat ssh_host_rsa_key.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtWSE5z6M/rWldIo6XaN4jdjaO380Mh5cN4G0D8l8tjWb+SFGxv4EoZm3t+MaI19KbIXT4np4sE/nBhH35Ar7VRv8vta3ZXgBcecAhj+SNhuG66anzkDhPQbyuxI3xX9E/MAtrc1VGxeqFcUyJp/nBkSeqIIv9VnwET2dbvR7xmvRn9GcKL8E1nR6yzPb5mUCcae5QjMnFDYwxrwhiXiLH591V3zZJdxM4hTBh1z8f1tysJMet3VVsGEWFivAg4JKQaa8i8bD0NcoYzM2KyTlVcesltUbjY4gr9CUDwBWtkdZGA0qDg37beNtqC29IKhqwtbKWqA7OAEQ0mx01nT09

可以看到上面两个字符串是一样的,这样就证明客户端,连接服务器的时候,服务器会把公钥发送给客户端,客户端会把公钥存储在"~/.ssh/known_hosts"路径

  • 如果客户端并无服务端的公钥信息,就会询问是否连接这个服务器

 ~/.ssh  ssh [email protected]
The authenticity of host '192.168.1.35 (192.168.1.35)' can't be established.
RSA key fingerprint is SHA256:MUn9itUDKqO4oMmXp0neLGfXIL7XBAdXBac8MJ3Tn90.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
  • 在建立安全连接过程中,可能会遇到提醒服务器的身份发生了改变

1.可以使用命令删除客户端存储的之前服务端的公钥信息

ssh-keygen -R 192.168.1.35

ssh-keygen -R 服务器IP地址,上面的192.168.1.35为服务器的地址
2.也可以使用vim直接打开,并删除公钥信息,然后保存退出vim

vim ~/.ssh/known_hosts

3.删除完成后,再次登录时候,就会出现授权的提示,并把服务器的公钥信息保存到客户端的~/.ssh/known_hosts

-SSH-2提供了2种常用的客户端认证方式

1.基于密码的客户端认证:使用账号和密码即可认证
2.基于秘钥的客户端认证:免密码认证,最安全的一种认证方式


秘钥登录

SSH-2默认会优先尝试“秘钥认证”,如果认证失败,才会尝试密码认证

  • 客户端生成公钥和私钥一对文件
ssh-keygen

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

  • 把客户端的公钥内容追加到服务端的授权文件(~/.ssh/authorized_keys)尾部,使用命令ssh-copy-id root@服务器主机地址,root就是用户名字
 ssh-copy-id [email protected]
客户端公钥追加到服务器授权文件尾部

ssh-copy-id会将客户端~/.ssh/id_rsa.pub的内容自动追加到服务器的~/.ssh/authorized_keys尾部

注意:由于是在~文件夹下操作,所以上述操作仅仅是解决了root用户的登录问题(不会影响mobile用户)
可以查看服务端的授权文件

cat ~/.ssh/authorized_keys

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7BbLYAN0MshadL+lDtu9/A7zrhVMfN90XlAgjVEbUYC0US+SOMO7rEUT5Y01ClaGnA+sIGjE0J4Nbes8dH69OpP8H20bw1zaPAKnGzzVxMuK38uCfdyy3JtDXK1MtIiNITriFsuV8gPn28XyjBs/qyhSmkjufyLpwkIeXHuj66xd0tF1VVBoqkIWi9+SAwy/lE/7QL8B5DnuyXa1TUEZR4RaHkNPPwp1KMIb89cDAsiOJ2BIaMFrc63cXklbdZPj0do/yjQBzrt4/yX9oa6xfGMJFqmEMn5+hXi8Y9bgwntveuETWfOvAw2PHGCEtKiSotAhmJgoq6FX4H1I++Da/ [email protected]

查看下客户端的公钥和服务端的授权文件中的文件是否一样

cat ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7BbLYAN0MshadL+lDtu9/A7zrhVMfN90XlAgjVEbUYC0US+SOMO7rEUT5Y01ClaGnA+sIGjE0J4Nbes8dH69OpP8H20bw1zaPAKnGzzVxMuK38uCfdyy3JtDXK1MtIiNITriFsuV8gPn28XyjBs/qyhSmkjufyLpwkIeXHuj66xd0tF1VVBoqkIWi9+SAwy/lE/7QL8B5DnuyXa1TUEZR4RaHkNPPwp1KMIb89cDAsiOJ2BIaMFrc63cXklbdZPj0do/yjQBzrt4/yX9oa6xfGMJFqmEMn5+hXi8Y9bgwntveuETWfOvAw2PHGCEtKiSotAhmJgoq6FX4H1I++Da/ [email protected]

  • 还可以使用另外一种方法,把客户端的公钥文件,追加到服务端的授权文件后
    1.先删除服务器上的授权文件;
 cd ~/.ssh
  rm authorized_keys

2.拷贝客户端的公钥到服务器上的~/.ssh路径里面

scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh

注意 在服务器后面添加路径的时候必须得用个:,才能添加路径
3.把客户端的公钥追加到服务器的authorized_keys

cat id_rsa.pub >> authorized_keys

相当于把id_rsa.pub文件的内容追加到authorized_keys的尾部,如果没有authorized_keys这个文件,就会新建一个这个文件
***如果都配置了,还是不能秘钥登录,可能是文件权限的问题,需要在服务器端设置文件权限
**

chmod 755 ~
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

iPhone默认是使用22端口进行SSH通信,采用的是TCP协议

mac通过wifi连接手机的22端口

-有两种方法可以登录,不使用wifi的情况下,使用usb数据线连接

1.下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)
下载地址
2.将iPhone的22端口(SSH端口)映射到Mac本地的10010端口

cd Documents/usbmuxd

执行端口的映射

 python tcprelay.py -t 22:10010

加上-t参数是为了能够同时支持多个SSH连接
注意如果出现下面这个错误提示

错误提示

-. 先查看hosts的文件,看看里面的文件有没有127.0.0.1 hostname,没有加入主机名 127.0.0.1 hostname

vim /etc/hosts

我的问题是使用了switchHosts这个软件,进行了修改,修改过了就可以了
3.使用usb连接手机

ssh root@localhost -p 10010

localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址

如果出现kex_exchange_identification: read: Connection reset by peer,是因为数据线没有连接好,拔下来重新连接下就可以了
4.选项映射错误的时候,也可以使用这个方法,进行端口映射
-.1先安装usbmuxd

brew install usbmuxd

-.2iproxy这个工具会将设置上的端口号,映射到电脑的某一个端口上

iproxy 10010 22

以上的命令就是把设备的22端口(SSH端口)映射到电脑的10010端口上,那么想和设备22端口通信,直接和本地的10010端口通信就可以了
-.3连接设备

ssh -p 10010 [email protected]

-.第二种方法连接设备

-.1.先安装usbmuxd

brew install usbmuxd

-.2.iproxy这个工具会将设置上的端口号,映射到电脑的某一个端口上

iproxy 10010 22

出现waiting for connection,这个表示映射已经成功了
-.3.连接设备,不要关闭这个窗口,(要重新打开一个窗口,使用command+T创建一个新的窗口,要是关闭了,这个端口映射就断开了)

ssh -p 10010 [email protected]

远程拷贝文件也可以直接跟Mac本地的10010端口通信

cp -P 10010 ~/Desktop/123.txt root@localhost:~

将Mac上的/Desktop/123.txt文件,拷贝到iPhone上的路径,(~表示用户路径)

注意:scp的端口号参数是大写的-P

使用脚本文件进行登录

我们可以把将经常执行的一系列终端命令行放到sh脚本文件中(shell),然后执行脚本文件
-.可以通sh,bash,source命令来执行sh脚本文件
sh、bash当前shell环境会启动一个子线程来执行脚本文件,执行完成后返回到父进程的shell环境
source在当前的shell环境下执行脚本文件

创建脚本文件

在用户目录下,创建脚本

vim usb.sh

里面添加"python ~/Documents/usbmuxd/tcprelay.py -t 22:10010",设置端口的映射
创建脚本

vim login.sh

里吗添加“ssh -p 10010 root@localhost”,连接手机的命令
以上两个脚本创建完成,可以快速创建端口映射和连接手机,分别执行这连个脚本,(注意执行完成第一个脚本,再开一个新窗口,执行第二个脚本)

sh usb.sh
sh login.sh

手机终端不能输入中文的问题

-.默认情况下,ios终端不支持中文输入和显示
解决方案:先进一个~/.inputrc文件,文件内容是

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

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

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

vim .inputrc

注意vim .inputrc中的.

然后重启终端,然后就可以在终端输入中文了
-.如果想在终端编译文件内容,可以通过Cydia安装一个vim,这样就可以使用vim命令来创建文件了

vim的图片

你可能感兴趣的:(越狱的笔记-环境的搭建)