单片机交流
登录
直播中
陈敏
7年用户
1318经验值
私信
关注
[问答]
如何实现通过网线就可以进行文件的传输以及控制台控制?
开启该帖子的消息推送
如何实现通过网线就可以进行文件的传输以及控制台控制?
回帖
(1)
王莉
2021-10-25 11:24:48
移植ssh到开发板主要是将开发板当成服务器,电脑端可以作为客户端进行访问,从而实现通过网线就可以进行文件的传输以及控制台控制。
移植ssh主要包含三大部分:1. zlib的移植; 2. openssl的移植; 3. openssh的移植
因此需要下载对应的源代码才能进行交叉编译。
zlib官网:
http://www.zlib.net/fossils/
openssl官网:
https://www.openssl.org/source/old/
openssh官网:
http://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/
这里下载了zlib-1.2.1.2.tar.gz openssl-1.0.2p.tar.gz openssh-5.6p1.tar.gz
(这里版本的选择建议大家可以先选择下载openssh的一个版本,解压openssh后进入文件夹查看INSTALL文档,里面有对zlib和openssl版本要求等的相关描述,可以根据其描述下载对应的版本,,如下图)
创建相关目录,方便管理
创建arm_ssh文件夹:mkdir arm_ssh
进入arm_ssh并创建lib文件夹:cd arm_ssh
mkdir lib
将下载好的zlib openssl openssh压缩包复制到arm_ssh文件夹中并解压
tar -xzvf openssh-5.6p1.tar.gz
tar -xzvf openssl-1.0.2p.tar.gz
tar -xzvf zlib-1.2.1.2.tar.gz
解压后目录如下:
zlib的移植
进入zlib-1.2.1.2目录:cd zlib-1.2.1.2
生成Makefile:./configure --prefix=/home/sen/arm_ssh/lib/zlib-1.2.1.2
-prefix指定安装目录,若zlib-1.2.1.2没有创建会自动创建
修改生成的Makefile, 主要将编译器改为arm平台的:vim Makefile
这里修改下图划红线的地方
编译:make
安装:make install
openssl的移植
进入openssl目录:cd openssl-1.0.2p
生成Makefile文件:./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-linux-gcc’ --prefix=/home/sen/arm_ssh/lib/openssl-1.0.2p
编译:make
安装:make install
openssh的移植
进入openssh目录:cd openssh-5.6p1
生成Makefile文件:./configure --host=arm-linux --with-libs --with-zlib=/home/sen/arm_ssh/lib/zlib-1.2.1.2 --with-ssl-dir=/home/sen/arm_ssh/lib/openssl-1.0.2p --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
编译:make
运行到这一步,就可以在openssh文件夹中找到移植需要的“scp ,sftp ,ssh,sshd,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan”文件。
生成key文件
进入openssh目录:cd openssh-5.6p1
生成ssh_host_rsa_key文件:ssh-keygen -t rsa -f ssh_host_rsa_key -N “”
生成ssh_host_dsa_key文件:ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
生成ssh_host_ecdsa_key文件:ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N “”
生成ssh_host_ed25519_key文件:ssh-keygen -t dsa -f ssh_host_ed25519_key -N “”
开发板的安装
在开发板上新建“/usr/libexec“,“/usr/local/etc ”,“/usr/local/bin ”三个目录:mkdir -p /usr/libexec /usr/local/etc /usr/local/bin
将openssh生成的“scp ,sftp ,ssh,sshd,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan”文件拷贝到开发板中的 /usr/local/bin中
将openssh目录下的“ssh_host_rsa_key,ssh_host_dsa_key,ssh_host_ecdsa_key,ssh_host_ed25519_key,moduli,ssh_config,sshd_config”拷贝到开发板的“/usr/local/etc”目录,并将“ssh_host_rsa_key,ssh_host_dsa_key,ssh_host_ecdsa_key,ssh_host_ed25519_key”权限改为600(不改权限后面运行不了)
将“sftp-server、ssh-keysign”拷贝到开发的“/usr/libexec”目录
修改开发板密钥:
在开发板串口控制台中,使用命令“vi /etc/passwd”,打开 ssh 秘钥文件,在/etc/passwd文件底行添加以下内容:
sshd: x:74:74:Privilege-separated
SSH:/var/empty/sshd:/***in/nologin (注:确保文件夹路径有效)
测试
首先开发板要能ping通虚拟机
这里虚拟机IP为192.168.13.59,开发板IP为192.168.13.60
如果开发板root用户没密码,须设置密码:passwd root
在开发板运行:/usr/local/bin/sshd
测试时这里会提示缺少libnsl.so.1这个动态库,可在虚拟机的arm编译器安装位置找到该库并复制到开发板的/lib目录下。
查看是否已经运行:ps
若成功运行,则在虚拟机上输入ssh
root@192.168.13.60
即可实现远程登录开发板
移植ssh到开发板主要是将开发板当成服务器,电脑端可以作为客户端进行访问,从而实现通过网线就可以进行文件的传输以及控制台控制。
移植ssh主要包含三大部分:1. zlib的移植; 2. openssl的移植; 3. openssh的移植
因此需要下载对应的源代码才能进行交叉编译。
zlib官网:
http://www.zlib.net/fossils/
openssl官网:
https://www.openssl.org/source/old/
openssh官网:
http://mirror.aarnet.edu.au/pub/OpenBSD/OpenSSH/portable/
这里下载了zlib-1.2.1.2.tar.gz openssl-1.0.2p.tar.gz openssh-5.6p1.tar.gz
(这里版本的选择建议大家可以先选择下载openssh的一个版本,解压openssh后进入文件夹查看INSTALL文档,里面有对zlib和openssl版本要求等的相关描述,可以根据其描述下载对应的版本,,如下图)
创建相关目录,方便管理
创建arm_ssh文件夹:mkdir arm_ssh
进入arm_ssh并创建lib文件夹:cd arm_ssh
mkdir lib
将下载好的zlib openssl openssh压缩包复制到arm_ssh文件夹中并解压
tar -xzvf openssh-5.6p1.tar.gz
tar -xzvf openssl-1.0.2p.tar.gz
tar -xzvf zlib-1.2.1.2.tar.gz
解压后目录如下:
zlib的移植
进入zlib-1.2.1.2目录:cd zlib-1.2.1.2
生成Makefile:./configure --prefix=/home/sen/arm_ssh/lib/zlib-1.2.1.2
-prefix指定安装目录,若zlib-1.2.1.2没有创建会自动创建
修改生成的Makefile, 主要将编译器改为arm平台的:vim Makefile
这里修改下图划红线的地方
编译:make
安装:make install
openssl的移植
进入openssl目录:cd openssl-1.0.2p
生成Makefile文件:./Configure linux-elf-arm -DB_ENDIAN linux:‘arm-linux-gcc’ --prefix=/home/sen/arm_ssh/lib/openssl-1.0.2p
编译:make
安装:make install
openssh的移植
进入openssh目录:cd openssh-5.6p1
生成Makefile文件:./configure --host=arm-linux --with-libs --with-zlib=/home/sen/arm_ssh/lib/zlib-1.2.1.2 --with-ssl-dir=/home/sen/arm_ssh/lib/openssl-1.0.2p --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar
编译:make
运行到这一步,就可以在openssh文件夹中找到移植需要的“scp ,sftp ,ssh,sshd,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan”文件。
生成key文件
进入openssh目录:cd openssh-5.6p1
生成ssh_host_rsa_key文件:ssh-keygen -t rsa -f ssh_host_rsa_key -N “”
生成ssh_host_dsa_key文件:ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
生成ssh_host_ecdsa_key文件:ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N “”
生成ssh_host_ed25519_key文件:ssh-keygen -t dsa -f ssh_host_ed25519_key -N “”
开发板的安装
在开发板上新建“/usr/libexec“,“/usr/local/etc ”,“/usr/local/bin ”三个目录:mkdir -p /usr/libexec /usr/local/etc /usr/local/bin
将openssh生成的“scp ,sftp ,ssh,sshd,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan”文件拷贝到开发板中的 /usr/local/bin中
将openssh目录下的“ssh_host_rsa_key,ssh_host_dsa_key,ssh_host_ecdsa_key,ssh_host_ed25519_key,moduli,ssh_config,sshd_config”拷贝到开发板的“/usr/local/etc”目录,并将“ssh_host_rsa_key,ssh_host_dsa_key,ssh_host_ecdsa_key,ssh_host_ed25519_key”权限改为600(不改权限后面运行不了)
将“sftp-server、ssh-keysign”拷贝到开发的“/usr/libexec”目录
修改开发板密钥:
在开发板串口控制台中,使用命令“vi /etc/passwd”,打开 ssh 秘钥文件,在/etc/passwd文件底行添加以下内容:
sshd: x:74:74:Privilege-separated
SSH:/var/empty/sshd:/***in/nologin (注:确保文件夹路径有效)
测试
首先开发板要能ping通虚拟机
这里虚拟机IP为192.168.13.59,开发板IP为192.168.13.60
如果开发板root用户没密码,须设置密码:passwd root
在开发板运行:/usr/local/bin/sshd
测试时这里会提示缺少libnsl.so.1这个动态库,可在虚拟机的arm编译器安装位置找到该库并复制到开发板的/lib目录下。
查看是否已经运行:ps
若成功运行,则在虚拟机上输入ssh
root@192.168.13.60
即可实现远程登录开发板
举报
更多回帖
rotate(-90deg);
回复
相关问答
有没有办法让RT-Thread
控制台
可以
输入指令呢?
2023-03-10
681
有没有办法让RT-Thread
控制台
可以
输入dap-link指令?
2023-02-21
598
如何
实现
STM32和
控制台
之间的串行通信呢?
2023-01-05
252
RT_Thread Nano如何添加
控制台
?
2022-02-16
1025
通过
win10
控制台
编译时,为何有时需要不断敲回车才嫩继续编译?
2023-02-16
202
UART
控制台
出现问题
2019-08-29
1295
如何利用低成本FPGA设计下一代游戏
控制台
?
2021-04-30
1125
labview 平移
台
功率计 工程开发
2017-09-20
3749
Hello_world文本无法在UART
控制台
上打印怎么办?
2020-04-29
2958
为什么使用WIZnet软件包在挂载上SPI设备后
控制台
能打印但是不能输入
2022-12-05
632
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分