基于Smart Zynq与Lemon Zynq 的Petalinux开发 章节六 Windows 通过 SCP 命令 远程传输文件给petalinux 系统

SCP是一种基于SSH协议的文件传输工具,它能够在不同的主机之间进行安全且高效的文件传输,本章节将演示使用SCP命令将文件远程发送给ZYNQ主板

备注:理论上和ssh一样,windows自带的cmd可以运行scp命令,但是因为我们petalinux上所使用的密钥算法是比较老的ssh-rsa,而windows中的scp和ssh已不再支持ssh-rsa密钥算法了

万幸Putty为我们提供了另一个命令 “pscp”,可以平替SCP命令,使用方法和SCP几乎一致。仅需我们提前安装好putty,之后就可以通过windows自带的cmd工具来使用pscp命令了。

以下是简单的演示操作

1) 为了方便演示查看结果,我们先在windows 下(本文放在G盘根目录)创建一个 scp_test.txt 文本文档,里面的内容是”Hello world ”

2) 通过串口(putty)查看主板的IP地址 ( ifconfig 命令) 可以看到板子当前的IP是192.168.1.112

3)先在串口命令下用mkdir 命令在petalinux下创建一个Scp_Test文件夹用于接收文件(文件位于/home/root 文件夹)

 mkdir /home/root/Scp_Test

之后我们用ls命令 ls /home/root 来查看,可以看见我们的Scp_Test文件夹被成功创建了

4) 在windows 开始菜单的搜索栏中输入”cmd”打开命令提示符

5)在windows 的命令提示符下输入下列命令 进行SCP文件的传输(将g:\scp_test.txt 文件 复制到远程主板的/home/root/Scp_Test目录下),系统会提示输入密码,此时输入我们系统的root密码并按下回车 (主板的IP地址请根据实际地址进行修改)

pscp g:\scp_test.txt root@192.168.1.112:/home/root/Scp_Test

这里的pscp实际上调用的是putty下的pscp.exe,功能和SCP相同。可以看到系统开启了传输过程。

6) 回到主板的命令提示行(ssh 或者串口)cd进入 /home/root/Scp_Test/文件夹,并用ls查看文件夹里的内容,可以看到 scp_test.txt文件已经存在

cd /home/root/Scp_Test/

ls

7) 用cat 命令来查看Scp_Test 中的内容,可以看到结果返回”Hello world”,证明我们的scp_test文件已成功传输到板子

9)如果需要将文件读回到 windows 只需要修改命令行中的内容即可 (因为原先win的g盘已经存在这个文件,所以我们将回传路径改成e盘) 输入下列命令(主板的IP地址请根据实际地址进行修改)

pscp root@192.168.1.112:/home/root/Scp_Test/scp_test.txt e:\

之后我们可以在windows 电脑的e盘根目录下找到 我们回传得到的scp_test.txt文件(打开后内容是Hello world )

以下是本章内容精简(下面的内容是标准的scp, 实际本文用的是pscp)

从本地复制文件到远程
scp SourceFile User@RemoteHost:RemotePath
例:从本地g盘根目录复制文件到scp_test.txt 到192.168.1.112(账号root)的/root/Scp_Test
scp g:\scp_test.txt root@192.168.1.112:/home/root/Scp_Test

从远程读取文件到本地
scp User@RemoteHost:RemoteFilePath DestinationFile
例:从远程192.168.1.112(账号root)的/root/Scp_Test复制文件scp_test.txt 到本地e盘根目录
scp root@192.168.1.112:/home/root/Scp_Test/scp_test.txt e:\

备注:如果是xillinux系统,或者pynq系统,这里可以直接用ssh 和scp命令来实现通讯。本文所使用的petalinux2018.3是不行的,至于后续新版本的petalinux加密方式是否已经更新,大家自行尝试。如果加密方式已经更新的话,就可以直接用CMD工具下的SCP命令完成上述操作。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注