上一篇文章: "长风破浪:Mach-O文件结构解读"
本篇文章将简要介绍手机远程调试。
1.手机远程调试
这篇文章介绍了探索Cydia的使用方式: "解锁潜力:探索Cydia的使用方式"
1.
要使用OpenSSH工具进行远程连接,首先需要在越狱设备上安装Cydia,并从Cydia中安装OpenSSH工具。2.
通过使用USBMuxd脚本,可以实现端口转发,为后续的SSH连接做准备。3.
通过ssh命令,可以进行与越狱设备的远程连接。4.
最后,可以利用SCP等命令进行文件传输等操作。-
5.
文章还提及了无线和有线远程连接在越狱设备上的一些不同之处,这对于进行远程调试时的选择和设置是很重要的。5.1
无线连接不需要进行端口转发。5.2
有线连接需要进行端口转发。5.3
无线连接时,在终端中使用命令 ssh user@手机ip地址。5.4
有线连接时,在终端中使用命令 ssh root@localhost -p 2222。5.5
使用USB连接相比无线连接更稳定且传输速度更快。
2.SSH
每次调试deb包时都要反复输入密码确实很麻烦。或许可以考虑使用SSH密钥进行身份验证,这样就不必每次都输入密码了。
您可以生成一个SSH密钥对,并将公钥添加到iOS设备的~/.ssh/authorized_keys文件中。
这样,当您连接到设备时,SSH将会使用密钥进行身份验证,而不是要求您输入密码。
这样一来,您就可以更快捷地进行调试工作,提高效率。
在远程调试时,通常需要输入密码。默认密码为alpine。
如果您曾修改过密码,则需要记住您设置的密码。
当您使用make package install命令时,您可能需要输入密码两次。
上述情况确实会影响效率。正好我们可以引入SSH来解决这个问题。
在讨论SSH时,很多朋友会混淆SSH、OpenSSH、SSL和OpenSSL等术语。
- SSL,OpenSSH,SSL,OpenSSL
1.
SSL(Secure Sockets Layer)是一种安全协议,用于网络通信,提供安全性和数据完整性。它在传输层对网络连接进行加密。
2.
OpenSSL是SSL协议的开源实现,广泛用于加密通信。大部分HTTPS请求使用HTTP协议,但是在OpenSSL的加密下,数据传输变得更加安全可靠。
3.
OpenSSH是用于安全远程登录的工具,它的加密功能是通过OpenSSL来完成的。这意味着OpenSSH使用OpenSSL提供的加密算法来保护通信的安全性。
4.
SSH
SSH协议一共有两个版本,分别是SSH-1和SSH-2。目前使用较多的是SSH-2版本。
注意
在进行SSH通信时,需要注意客户端和服务端的SSH版本要保持一致才能够成功通信。
查看SSH版本
客户端:/etc/ssh/ssh_config
服务端:/etc/ssh/sshd_config
SSH通信过程
1.
建立安全连接
2.
客户端认证
3.
数据传输SSH的客户端认证方式
1.
基于密码的客户端认证
2.
基于密钥的客户端认证
注意
SSH-2默认使用密钥认证机制。在密钥认证中,用户会生成一对密钥:公钥和私钥。
公钥存储在服务器上,而私钥则保存在用户的本地计算机上。
服务器会通过公钥来验证用户发送的加密结果,如果验证成功,则认为用户是合法的,并允许其进行连接。
- 密钥认证登录
如何在客户端生成一对相关联的密钥(Key Pair):
一个公钥 (Public Key)
,一个私钥 (Private Key)
ssh-keygen
- 接着,我们敲回车键即可
- OpenSSH默认生成的是RSA密钥,可以通过-t参数指定密钥类型
生成的公钥 / 私钥是 :
~/.ssh/id_rsa_pub
,~/.ssh/id_rsa
接着我们创建.ssh文件夹
mkdir .ssh
已经存在.ssh目录,无法再次创建。
- 我们把id_rsa.pub从Mac拷贝到移动端的.ssh文件夹
- 我们把id_rsa.pub的内容自动追加到服务器的 ~/.ssh/authorized_keys尾部
- 我们再远程登录一下客户端,看看是否免密登录.
输入命令后,我们就可以免密登录
注意
如果您输入命令后仍然需要输入密码,可以将您的公钥添加到authorized_keys文件中进行授权。
总结
本篇文章介绍了如何实现免密远程登录手机,并详细介绍了SSH协议。在文章中还提及了SSL、OpenSSH和OpenSSL等相关概念。相信通过这篇文章,您对远程调试应该有了更深入的了解。