提高工作效率的工具
- 1.Alfred:便捷搜索
- 2.XtraFinder:增强型Finder
- 3.iTerm2:完爆Terminal
- 4.Go2Shell:从Finder快速定位到命令行工具
Mac远程登录到iPhone
- 1.作用:用Mac终端命令操作iPhone
- 2.连接:使用OpenSSH远程登录
- A.在iPhone上通过Cydia安装OpenSSH工具(软件源:http://apt.saurik.com)
- B.首先保证Mac和iPhone在同一局域网下
- C.在Mac终端输入 ##ssh 账户名@服务器主机地址##
- 例如:ssh root@10.1.1.168
- 服务器地址也就是手机的ip地址
- D.初始密码是alpine,密码可以在OpenSSH里面查看
- E.登录成功以后就可以使用终端操控iPhone
- F.退出登录的命令是 exit
- 3.iOS账户,iOS下有两个常用账户Root Mobile
- Root:最高权限账户
- Mobile:普通权限账户,只能操作一些普通文件,不能操作系统级别的软件,
- 登录mobile的命令就是 ssh mobile@10.1.1.168
- root和mobile的初始密码都是alpine
SSL OpenSSL
- OpenSSH OpenSSL很容易弄混
- OpenSSH的加密就是通过OpenSSL完成的
SSH的版本
- 1.一共两个版本
- SSH-1
- SSH-2
- 2.现在用的比较多是SSH-2,客户端和服务端SSH版本保持一致才能进行通信。
- 3.查看SSH版本
- 客户端:/etc/ssh/ssh_config
- 服务端:/etc/ssh/sshd.config
SSH通信过程
- 1.建立安全链接
- 2.客户端认证
- 3.数据传输
1.建立安全链接
-
1.在建立安全链接的过程中,服务器会提供自己的身份证明
image.png -
2.如果客户端并无服务器的公钥信息,就会询问是否链接服务器
image.png
在建立安全链接的过程中,如果报错:服务器的身份信息发生变更
image.png- 1.如果确定要链接此服务器,删掉之前的服务器公钥信息就行 ssh-keygen -R 服务器IP地址
- 2.或者直接打开known_hosts文件删除服务器的公钥信息就行 vim ~/.ssh/known/hosts
SSH客户端的认证方式
- 1.SSH-2提供了两种客户端认证方式。
- A.基于密码的客户端认证(使用账号,密码即可认证)
- 2.基于密钥的客户端认证
- A.免密码认证
- B.安全的认证方式
SSH-2会先进行密钥认证,如果认证失败,才会进行账号密码认证
SSH->基于密钥的客户端认证
image.png- 1.在客户端生成一对相关联的密钥(key pair):一个公钥(Public Key),一个私钥(Private Key)
命令:SSH-keygen- A.一路敲回车即可
- B.OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
- C.生成的公钥 ~/.ssh/id_rsa.pub
- D.生成的私钥 ~/.ssh/id_rsa
- 2.把客户端生成的公钥内容追加服务器的授权文件(~/.ssh/authorized_keys)尾部
命令:ssh-copy-id root@服务器地址- A.需要输入root账户的登录密码
- B.ssh-copy-id会自动把客户端的/.ssh/id_rsa.pub追加到服务器的/.ssh/authorizes_keys尾部
- 3.第二步中使用ssh-copy-id root@服务器地址进行操作,其实还有一种手动操作将 公钥->授权文件尾部
- A.复制客户端的公钥到服务器的某个路径
命令:scp ~/.ssh/id_rsa.pub root@服务器地址
scp是secure copy的缩写,是基于SSH登录进行安全的文件拷贝命令,把一个文件安全的拷贝到另一个主机上
上面的命令将客户端的/.ssh/id_rsa.pub拷贝到服务器的地址 - B.SSH登录服务器
命令:ssh root@服务器地址(需要输入root用户的登录密码) - C.在服务器创建.ssh文件夹
命令:mkdir .ssh - D.追加公钥内容到授权文件底部
命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
-E.删除公钥
命令:rm ~/id_rsa.pub
- A.复制客户端的公钥到服务器的某个路径
文件权限问题
如果配置了免密码登录以后,还是需要输入密码,需要在服务器端设置文件权限,以下数字代表不同的权限信息,不做过多解释,可自行百度
- chmod 755 ~
- 2.chomd 755 ~/.ssh
- 3.chomd 644 ~/.ssh/authorized_keys
22端口
- 1.端口就是设备对外提供服务的窗口,每个端口都有端口号(范围是0~65535,共2^16个)
- 2.有些端口号是保留的,已经规定了用途,例如:
- A.21端口提供FTP服务
- B.80端口提供HTTP服务
- C.22端口提供SSH服务
- D.更多端口号详情
-
3.iPhone默认使用22端口进行SSH通信,采用的是TCP协议
image.png
通过USB进行SSH登录
-
1.默认情况下,由于SSH走的是TCP协议,Mac是通过网络连接的方式SSH登录到iPhone,要求iPhone连接Wifi
image.png - 2.为了加快传输速度,也可以通过USB连接的方式进行SSH登录
- A.Mac上有一个usbmuxd,他可以将Mac数据通过USB传输到iPhone
-
B.usbmuxd路径:/System/Library/PrivateFrameworks/MobileDevice.framework/Resources/usbmuxd
image.png
usbmuxd使用指南1
- 1.下载usbmuxd工具包(下载v1.0.8版本,主要用到里面的一个python脚本:tcprelay.py)地址
- 2.将iPhone的22端口(SSH端口)映射到Mac本地的10010端口
- A.cd ~/Documents/usbmuxd-1.0.8/python-client
- B.python tcprelay.py -t 22:10010
-
C.加上 -t 是为了能够同时支持多个SSH连接
image.png
- 3.注意事项:要想保持端口映射状态,不能终止此命令行
- 4.不一定要10010端口,只要不是保留端口就可以
usbmuxd使用指南2
- 1.端口映射完毕后,以后如果想跟iPhone的22端口进行通信,直接跟Mac本地的10010端口通信就可以了
- 2.新开一个终端页面,SSH登录到本地的10010端口(以下二选一)
- A.ssh root@localhost -p 10010
- B.ssh root@127.0.0.1 -p 10010
- C.localhost是一个域名,指向的IP地址是127.0.0.1,本机虚拟网卡的IP地址
- 3.usbmuxd会将本地10010的端口的TCP协议数据,通过USB连接转发到iPhone的22端口
- 4.远程copy文件也可以直接跟Mac本地的10010端口通信
A. scp -P 10010 ~/.Desktop/1.txt root@localhost:~/test
B.将Mac上的/.Desktop/1.txt文件,拷贝到iPhone的/test目录下
C.scp的端口号参数是大写的 -P
sh脚本文件
-
1.我们可以将经常执行的一系列终端命令放入sh脚本文件中(shell),然后执行脚本文件
image.png -
2.可以通过sh,bash,source命令来执行sh脚本文件
A.sh,base
1.当前shell环境会启动一个子线程来执行脚本文件,执行过后会返回父进程的shell环境
2.例如执行cd指令时,在子线程中会进入cd的目录,但在父进程中环境并没有更改,也就是说并没有改变目录
B.source
1.在当前的环境中执行shell脚本文件
2.执行cd会跳转到cd的目录
3.source可以用一个“.”代替比如 . test.sh
image.png
网友评论