最近有需求使用电脑导出手机中特定app的文件。

当然可以直接连上数据线将手机中的文件下载下来。

为了能做到代码自动化导出,将手机作为一台电脑使用,将手机中的文件导出来。

关键问题是如何将手机作为电脑使用,这里有几个步骤(我使用的是Iphone手机)。

1.在手机上安装一个SSH的APP,这里我使用的是iSH。2.组网:将手机和电脑连上同一个wifi2.手机打开iSH,安装sshd服务3.使用电脑ssh客户端链接手机的sshd服务

一、手机下载SSH的APP

这里我使用是iphone手机,安装的是iSH。安卓手机可以使用Termux

二、组网

将手机和电脑连上同一个wifi,保证手机和电脑在同一个局域网内。并找到手机在该wifi下的ip是多少。

这里可以看到,手机在该wifi下的内网ip是:192.168.17.50

可以在电脑端ping一下该ip,如果ping的通,说明电脑和手机直接的网络是通的:

三、通过手机iSH安装sshd服务

打开手机安装的app: iSH:

上面线上了欢迎标语Welcome to Alpine!,和安装软件使用的命令(apk add)。

1.安装常用命令

Alpine是Linux发行版的一种。类似Redhat、CentOS、Ubantu等。这里需要注意的是Alpine和常用的linus命令有一些命令不一样,这里需要先安装几个软件包:openssh openrc net-tools network-extras busybox-extras;这些软件包中有 ssh sshd service telnet netstat 等命令。

安装语句:

wxl-iPhone:~# apk add openssh openrc net-tools network-extras busybox-extras

其中sshd就是openssh包中的命令(/usr/sbin/sshd)。

2.修改sshd配置文件

wxl-iPhone:~# vi /etc/ssh/sshd_config

找到PermitRootLogin参数,将值改成yes,表示允许使用root账号登陆。

可以看到sshd服务的端口号默认是22。

Alpine的vi命令使用和CentOS一样,快捷键也一样。需要注意的是从编辑模式退出来,使用电脑键盘的Esc键,手机上使用:

3.启动sshd服务

/usr/sbin/sshd # 启动sshd服务

service sshd status # 查看sshd服务运行状态

service sshd restart # 重启sshd服务

四、电脑SSH客户端链接Iphone手机的sshd服务

SecureCRT链接情况:

配置完成后,链接时报错:

Key exchange failed.

No compatible key exchange method. The server supports these methods: curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256

报错信息表明:公钥交换失败,没有兼容的密钥交换方法。 这是因为我的SecureCRT版本中的"Key exchange"部分(见上图)和Iphone手机端的秘钥交换方法不一致。如果上述无法解决这个问题,建议升级SecureCRT软件版本或者使用尝试其他的SSH客户端,如Xshell、putty等。

这是我使用windows上安装的Git自带的SSH客户端使用ssh命令链接的(也可以使用windows的cmd命令窗口链接):

$ ssh root@192.168.17.50

root@192.168.17.50's password:

Welcome to Alpine!

You can install packages with: apk add

You may change this message by editing /etc/motd.

wxl-iPhone:~#

wxl-iPhone:~#

wxl-iPhone:~#

出现Welcome to Alpine!表示链接成功。Alpine是Linux发行版的一种。类似Redhat、CentOS、Ubantu等。

链接失败问题解决

如果出现Connection timed out:

Lenovo@DESKTOP-D6V7C5G MINGW64 ~/.ssh

$ ssh root@192.168.17.50

ssh: connect to host 192.168.17.50 port 22: Connection timed out

可能是手机端的sshd服务未启动,需要在手机端启动sshd服务、或重启sshd服务。

如果出现Connection refused:

Lenovo@DESKTOP-D6V7C5G MINGW64 ~/.ssh

$ ssh root@192.168.17.50

ssh: connect to host 192.168.17.50 port 22: Connection refused

是因为手机端不认识当前的电脑客户端。需要将电脑端的/.ssh/id_rsa.pub内部的公钥信息拷贝到手机的/.ssh/authorized_key文件内后重新连接。

下图是电脑端的执行情况和电脑公钥id_rsa.pub信息:

下图是手机端的authorized_key信息(如果文件不存在,需要新建文件):

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: