嵌入式Linux开发的一个文件传输技巧

嵌入式Linux开发的一个文件传输技巧

说明

最近在开发嵌入式Linux设备的时候偶然想到的,之前遇到过很多的板子,板子和电脑主机(Windows/Linux)传输文件的方式大多是以下几种

  • rz/sz:串口传输
  • nfs:网络文件系统挂载
  • U盘

至于其他小众的smb啊之类的场景太局限,今天又发现可一种可行的比较普适的方案,就是使用ssh。

使用ssh工具进行嵌入式设备的文件传输

环境要求

电脑主机端:Windows/Linux

  • Windows:安装git,git-bash里面有完整的sshd支持
  • Linux:安装openSSH Serve

上述都不是一件难事,只需要确认能够把sshd跑起来就行

嵌入式设备端: Linux

  • 只需要在嵌入式设备端内有ssh工具即可,基本上都会带有的。

连通性

所谓连通性就是主机和嵌入式设备能够ping通,这个很简单,直接使用ifconfig配置嵌入式设备端的对应端口的ip和主机在同一网段即可:

ifconfig 端口 192.168.xxx.xxx

然后直接pingping通即可。

操作步骤

主机端

Windows

打开git-bash,进入控制台,首先确保hostkey存在

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

直接默认全部回车,秘钥就会生成,然后直接运行sshd

/usr/bin/sshd.exe

如果没有任何报错输出即为运行成功,用户名是当前用户名,即git-bash控制台每行输出提示符@前面的字样,密码为登录密码。

Linux

linux端则方便很多,以Ubuntu为例,直接使用Service或者Systemctl进行启用即可

systemctl sshd start

嵌入式设备端

只要能够通过ssh连接到主机端及说明链路生效,就是尝试直接登录主机。

ssh 主机用户名@主机ip

能登录上就 exit退出,然后我们就可以开始文件传输了

文件传输

此时进行文件传输只需要使用 scp命令即可,通过嵌入式端去获取主机端的文件的命令就是:

scp 主机用户@主机ip:主机文件位置 /嵌入式端存放文件位置
  • 主机文件位置建议使用 ~/开始的个人用户目录起始,这样比较明确。
  • 如果想拷贝文件夹的话则在命令最后添加 -r参数即可,表示遍历拷贝。

OK,这个就是新的文件传输的思路,不需要配置很多的东西,git的话在主机端平时也会有(windows大家都有用git的吧,不是吧不是吧,竟然有公司不用git?[不是]),网线的话也是直接扯一根插上就用的,所以还是挺方便的。


消息盒子

# 暂无消息 #

只显示最新10条未读和已读信息