嵌入式学习小组
直播中

周羽姿

7年用户 207经验值
私信 关注

迅为i.MX6ULL终结者移植ssh服务安装测试,不看肯定后悔

迅为i.MX6ULL终结者移植ssh服务安装测试,不看肯定后悔

回帖(1)

康选谦

2021-4-19 15:34:38
  文章目录
  1 基本文件的安装
  2 生成 Key 文件,并安装
  3 修改目标板密钥文件
  4 测试
  1 基本文件的安装
  在文件系统busybox上新建“/usr/libexec“、“/usr/local/etc ”、“/usr/local/bin ”三个目录,使用命令“mkdir -p /usr/libexec /usr/local/etc /usr/local/bin”,如图 1.1所示。
  
  在虚拟机 Ubuntu 上,将 openssh-6.6p1 下的生成“scp 、sftp、ssh、sshd、ssh-
  add、ssh-agent、ssh-keygen、ssh-keyscan”可执行文件拷贝到文件系统“/usr/local/bin”目录下,拷贝完成,如图 1.2所示。
  
  将“moduli、ssh_config、sshd_config”拷贝到开发板的“/usr/local/etc”目录下,
  拷贝完成,如图 1.3所示。
  
  将“sftp-server、ssh-keysign”拷贝到开发板的“/usr/libexec”目录下,拷贝完成,
  如图 1.4所示。
  
  2 生成 Key 文件,并安装
  使用“ssh-keygen”生成个四个 key 文件“ssh_host_rsa_key”“ssh_host_dsa_key”
  “ssh_host_ecdsa_key”和“ssh_host_ed25519_key”。
  ① 在虚拟机 Ubuntu 控制台,“/home/topeet/project/ssh-arm/openssh-4.6p1”目录下,使用命令“ssh-keygen -t rsa -f ssh_host_rsa_key -N “””,可以生成“ssh_host_rsa_key ”文件
  ② 接着使用剩下的三条命令:
  ssh-keygen -t dsa -f ssh_host_dsa_key -N “”
  ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N “”
  ssh-keygen -t dsa -f ssh_host_ed25519_key -N “”
  执行完成之后,将生成的“ssh_host_rsa_key”“ssh_host_dsa_key”“ssh_host_ecdsa_key”和
  “ssh_host_ed25519_key”文件,拷贝到文件系统的“/usr/local/etc/”目录下,然后将其权限 修改为 600,如下图所示。
  
  
  3 修改目标板密钥文件
  在文件系统中,使用命令“vi /etc/passwd”,打开 ssh 密钥文件,在 “/etc/passwd”文件底行添加以下内容:
  sshd:x:74:74《img sr smiliei borde al》rivilege-separated
  SSH:/var/empty/sshd:/***in/nologin
  添加完成之后,如下图所示,然后保存,密钥文件修改完成。
  
  4 测试
  作者的开发板链接路由器,PC 机的 Windows 系统也是链接路由器,所以首先要确保开发板和 PC 机是可以 Ping 通的,也就是设置在同一网段,修改文件系统的/etc/eth0-setting文件。
  作者的 PC 的 IP 为:192.168.123.224,如图 4.1所示。
  
  开发板的 IP 为:192.168.123.150,/etc/eth0-setting文件已经修改过。
  将文件系统打包,烧写到开发板上
  使用 ping 命令测试,如图 4.2所示,网络通畅,另外按键“Ctrl”+c 可以结束 ping 动作
  
  
  接着在开发板上新建 root 账户,如图 4.4所示,使用命令“passwd root”,它会提示输
  入密码,需要重复输入两次以防输错。
  
  然后在开发板上运行 sshd 二进制文件,使用命令“/usr/local/bin/sshd”,提示如图 4.5
  
  再去Ubuntu查看下ssh可执行文件,file sshd
  
  在串口控制台输入 ln -sv /lib/ld-2.19-2014.08-1-git.so /lib/ld-linux.so.3 建立软链接,如图 4.7所示:
  
  然后使用工具 ssh 测试是否和 PC 联通能否正常通信,如图 75.3.4.8所示,使用命令
  “/usr/local/bin/ssh 192.168.123.224”,这里的 IP 是作者 PC 的 IP。
  
  控制台输入“/usr/local/bin/sshd”虽然报错了,但是不影响使用。如果提示缺少动态库,前面的库文件如果拷贝不全,可能出现这种问题,如果用户使用迅为电子的根文件系统,经过测试各种文件都拷贝没有错误,一般是不会提示缺少什么库的。
  
  接着在 PC 上使用 ssh 工具连接开发板,使用方法和连接 Ubuntu 上的 ssh 类似,如图 4.10所示。
  
  
  然后传一个文件测试下,如图 4.12所示。
  
  说明成功完成了文件传输移植工作。
  ssh 控制台也是可以使用的,登陆方法和 PC 连接虚拟机 Ubuntu 的 ssh 一 样。
  另外在安装部分,也可以将其拷贝到文件系统的源码中对应目录,重新打包编译,生成直接支持 ssh 的镜像。
  到这里,部分用户可能会有疑惑,第一个人是如何知道 ssh 需要这两个库文件的呢?首先,开发 ssh 软件的大神,做了这个东西会提供编译和使用 demo,这样就有了基础的英文移植文档,然后慢慢的会有中文版的,接着 ssh 流传开了之后,通过网络搜索 ssh 移植到 arm的方法的文档和博客,就随处可见了。
  当然,假如将来大家工作有移植的需求,找不到中文教程,需要直接使用某个开源软件的 demo,首先就需要英文过关,然后还需要有移植的基础知识。在编译的过程中,它会提示缺少各种库,通过编译,也是可以一步一步找出依赖库的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分