嵌入式Linux开发板移植SSH

ssh服务可以很方便的通过网络登录到linux开发板,同时支持sftp协议向开发板传输文件。下面简单讲下移植过程。

开发板环境:

名称:imx283内核:Linux2.6.35.31.下载源码zlib下载openssl下载openssh下载

建议先下载openssh,openssh也不要下载最新版本,zlib和openssl的版本最好早于openssh的版本,因为openssh的编译会用到zlib和openssl生成的库 ,若zlib和openssl的版本比openssh新,可能在编译openssh时出现不兼容等问题。

我这里下载的是zlib-1.2.8、openssl-1.0.2、openssh-7.1p1。

2.zlib编译

解压zlib-1.2.8,进入zlib根目录

1>./configure –static –prefix=/test/open-ssh/zlib/ 生成makefile

–static 表示生成静态库 也可以使用–share生成动态库

–prefix 指定make install的安装目录2>修改makefile 更换编译器为交叉编译器 CC=arm-fsl-linux-gnueabi-gcc LDSHARED=arm-fsl-linux-gnueabi-gcc CPP=arm-fsl-linux-gnueabi-gcc -E AR=arm-fsl-linux-gnueabi-ar

3>make 4>make install

3.openssl编译

解压openssl源码,进入源码根目录

1.配置 openssl的新旧版本配置方式有点不同,具体配置方式可以查看./configure -h

1.1.1版本配置:

代码语言:javascript代码运行次数:0运行复制

 ./Configure linux-generic32 no-asm shared no-async --prefix=/test/open-ssh/open-ssl1/ CROSS_COMPILE=/ZLG_linux/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi- CC=gcc -fPIC 

linux-generic32:32位系统 no-asm:在交叉编译过程中不使用汇编代码代码加速编译过程 shared:生成动态连接库 no-async:不使用GNU的ucontext库 交叉编译工具链没有提供GNU C的ucontext库 –prefix:指定install输出的目录 CROSS_COMPILE:指定编译器,需要绝对路径 -fPIC全称是Position Independent Code,用于生成位置无关代码,代码无绝对跳转,都是相对跳转。

1.0.2版本配置:

代码语言:javascript代码运行次数:0运行复制

./Configure --prefix=/test/open-ssh/open-ssl/ os/compiler:/ZLG_linux/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gcc 

–prefix 指定make install的安装目录

这里交叉编译器路径最好使用绝对路径

2.编译 make 3.安装 make install

4.openssh编译

解压openssh源码,进入源码主目录

1.配置 生成MakeFile

代码语言:javascript代码运行次数:0运行复制

./configure --host=arm-fsl-linux-gnueabi --with-libs --with-zlib=/test/open-ssh/zlib --with-ssl-dir=/test/open-ssh/open-ssl --disable-etc-default-login CC=arm-fsl-linux-gnueabi-gcc AR=arm-fsl-linux-gnueabi-ar

这里需要指定刚刚安装的zlib和openssl目录

2.编译

make

5.拷贝openssh相关文件和密钥

这部分工作包括新建文件夹、将生成的sshd相关工具拷贝到各个文件夹、生成密钥。我把这些写成了一个shell脚本pack.sh,该脚本首先新建一个usr文件夹,然后在usr下新建需要的各级子文件夹,接着会生成需要的密钥并把需要的sshd相关工具和密钥拷贝到这些文件夹,最后将usr下所有文件打包 并生成usr.tar.bz2压缩包。

注意:pack.sh需要放在openssh源码根目录下运行

代码语言:javascript代码运行次数:0运行复制

#!/bin/bashfile_a="scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan" file_b="moduli ssh_config sshd_config" file_c="sftp-server ssh-keysign"key="ssh_host_rsa_key ssh_host_dsa_key ssh_host_ecdsa_key ssh_host_ed25519_key" mkdir -p usr/local/bin usr/local/etc usr/libexec mkdir usr/sbin/for i in $file_adoif [ -f $i ];thencp $i usr/local/bin/echo "cp $i ok" elseecho "error:$i not exist "        exit_script  fidonefor i in $file_bdoif [ -f $i ];thencp $i usr/local/etc/echo "cp $i ok"elseecho "error:$i not exist"exit_script fidonefor i in $file_cdo    if [ -f $i ];then        cp $i usr/libexec        echo "cp $i ok"    else        echo "error:$i not exist"        exit_script    fidoneif [ -f "sshd" ];thencp sshd usr/sbin/echo "cp sshd ok"elseecho "error:sshd not exist"exit_scriptfi# ssh_host_rsa_keyif [ -f "ssh_host_rsa_key" ];thenecho "ssh_host_rsa_key exist"cp ssh_host_rsa_key usr/local/etc/echo "cp ssh_host_rsa_key ok" elsessh-keygen -t rsa -f ssh_host_rsa_key -N ""cp ssh_host_rsa_key usr/local/etc/echo "cp ssh_host_rsa_key ok" fi# ssh_host_dsa_keyif [ -f "ssh_host_dsa_key" ];thenecho "ssh_host_dsa_key exist"cp ssh_host_dsa_key usr/local/etc/echo "cp ssh_host_dsa_key ok" elsessh-keygen -t dsa -f ssh_host_dsa_key -N ""cp ssh_host_dsa_key usr/local/etc/echo "cp ssh_host_dsa_key ok" fi# ssh_host_ecdsa_keyif [ -f "ssh_host_ecdsa_key" ];thenecho "ssh_host_ecdsa_key exist"cp ssh_host_ecdsa_key usr/local/etc/echo "cp ssh_host_ecdsa_key ok" elsessh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""cp ssh_host_ecdsa_key usr/local/etc/echo "cp ssh_host_ecdsa_key ok" fi# ssh_host_ed25519_keyif [ -f "ssh_host_ed25519_key" ];thenecho "ssh_host_ed25519_key exist"chmod 600 ssh_host_ed25519_keycp ssh_host_ed25519_key usr/local/etc/echo "cp ssh_host_ed25519_key ok" elsessh-keygen -t dsa -f ssh_host_ed25519_key -N ""chmod 600 ssh_host_ed25519_keycp ssh_host_ed25519_key usr/local/etc/echo "cp ssh_host_ed25519_key ok" fitar -cjvf usr.tar.bz2 usr/*echo "pack usr to usr.tar.bz2 ok"

生成usr.tar.bz2压缩包之后,将该压缩包拷贝到开发板的根目录下并解压,压缩包内的usr目录会和开发板根目录下的usr合并。

6.拷贝openssh运行需要的动态库

首先可以在openssh源码根目录下运行:arm-fsl-linux-gnueabi-readelf -d sshd 就可以知道sshd需要哪些动态库

嵌入式Linux开发板移植SSH

如果你开发板的文件系统能够运行起来,那么其中的大部分库应该是有的,缺少的可能是libcrypt.so.1和libz.so.1,libcrypt.so.1在openssl源码根目录下可以找到,libz.so.1在libz源码的根目录下。将缺少的库拷贝到开发板/lib下即可。

7.修改SSHD配置、增加root用户密码将开发板/usr/local/etc/sshd_config,将PermitRootLogin yes前的注释“#”号去掉,若没有这一句,增加这一句即可。开发板执行passwd root,给root用户增加密码,若之前有密码,这一步可跳过。开发板打开 /etc/passwd 文件,在最后添加一行:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin开发板打开/etc/init.d/rcS,在最后增加一句:/usr/sbin/sshd &,让ssh服务开机在后台启动(必须保证此时网卡已经配置好,否则启动ssh服务需要放到网卡配置后面)

最后重启开发板!

8.测试

首先执行ps,看下ssh服务是否已经启动

嵌入式Linux开发板移植SSH

用secureCRT或者其他ssh工具连接开发板!

部分用xshell工具的同学可能会遇到下面的问题:

WARNING! The remote SSH server rejected X11 forwarding request. 解决办法:xshell——会话——属性——隧道——取消勾选X11转发

参考博客:

1.成功移植 SSH 服务到 ARM 开发板上

2.移植 ssh 到开发板

3.12个移植OpenSSH 到 ARM Linux 开发板上常见错误总结

以上就是嵌入式Linux开发板移植SSH的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/72932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月13日 18:53:02
下一篇 2025年11月13日 19:25:37

相关推荐

  • 为什么币圈每逢周末行情波动更大?

    很多币圈投资者注意到,每逢周末数字资产行情波动往往更大。本文将解析周末行情波动加剧的原因,帮助用户理解背后的市场机制,更好地把握交易节奏。 为了获得更准确的行情数据和顺畅的交易体验,推荐使用流动性强且交易活跃的平台。例如,币安作为全球领先的交易所,拥有丰富的交易对和深厚的市场深度,适合跟踪行情变化。…

    2025年12月8日
    000
  • 免费行情网站app推荐 币圈免费行情官网地址

    对于加密货币投资者而言,实时、准确的行情数据是决策的关键。本文将为您盘点并推荐市面上最受欢迎且功能强大的免费行情网站与app,帮助您轻松掌握市场动态,找到最适合自己的行情工具。 顶级免费行情网站与App推荐 以下平台不仅是交易巨头,其内置的行情中心也因数据实时、深度好、图表功能强大而成为投资者的首选…

    2025年12月8日
    000
  • 如何计算币种年化收益率?怎么配置才能让收益最大化

    年化收益率是币圈投资者衡量资产收益的重要指标,反映了一年内投资回报的百分比。本文将介绍如何计算币种的年化收益率,并分享一些配置策略,帮助用户实现收益最大化。 在配置投资组合时,建议选择支持多样化理财产品和灵活交易的平台。例如,币安提供丰富的质押和理财产品,方便用户根据风险偏好调整配置。 而欧易OKX…

    2025年12月8日
    000
  • 安币交易所移动端下载|安币官网链接|现货与合约综合入口

    1、选择安币(Binance)平台时,务必通过官方网站访问以确保安全;2、官网提供注册、认证及双重验证等关键安全设置,用户应第一时间完成;3、移动端应用下载首选官网提供的二维码或链接,其次可从正规应用商店核对开发者信息后下载;4、现货交易适合初学者,资产即时交割,风险较低,可通过“现货”入口进入;5…

    2025年12月8日
    000
  • 数字货币和加密货币,如何影响全球金融格局

    数字货币通过区块链技术重塑全球金融格局,1. 提升跨境支付效率并降低成本;2. 增加资本流动自由度但加大监管难度;3. 催生DeFi、NFT等新型金融服务;4. 推动央行研发CBDC以维护货币主权;5. 倒逼监管框架更新以应对反洗钱、消费者保护等挑战;6. 促使传统金融机构转型并融合数字资产服务,这…

    2025年12月8日
    000
  • 币种为何在不同平台的价格不一样?出现这种偏差的原因是什么

    不少用户在交易数字资产时常会疑惑:为什么同一个币种在不同交易平台上价格却不一样?本文将带你了解这种价格偏差的原因,并教你如何判断、应对和利用这种差异。 在进行交易前,选择一个流动性高、用户基数大的平台尤为重要。例如,币安作为全球使用人数较多的交易所之一,平台成交频率高,价格通常更贴近市场真实水平。 …

    2025年12月8日
    000
  • 数字货币如何改变我们的日常支付习惯?

    数字货币将显著改变日常支付习惯,1. 它通过区块链技术实现跨境支付的高速、低成本、全天候、去中心化和可追溯;2. 在零售消费中提升便捷性、降低汇率损耗、增强普惠性并推动创新支付方式;3. 商家可通过选择支付网关、注册账户、集成系统、配置结算方式、培训员工和处理合规来接收数字货币,从而降低手续费并提高…

    2025年12月8日
    000
  • 加密资产被冻结的原因有哪些?如何避免被锁定

    在数字资产交易过程中,有用户会遇到账户中的加密资产被“冻结”或“锁定”的情况。这通常意味着用户暂时无法提币、交易或进行转账操作。本文将详细解释导致资产被冻结的常见原因,并提供具体方法帮助用户规避这些风险。 为减少资产被锁定的风险,建议使用风控体系成熟的平台,如币安和欧易OKX。这两个平台在处理用户身…

    2025年12月8日
    000
  • 虚拟币杠杆交易与现货交易有何不同?在币圈选择哪种交易方式更优?

    在数字资产领域,杠杆交易与现货交易是两种基础且截然不同的参与方式。现货交易遵循简单直接的买卖原则,而杠杆交易则通过引入借贷机制,放大了潜在的收益与风险主流的数字资产服务平台,例如币安Binance 和欧易OKX,都提供成熟稳健的现货与杠杆交易服务。理解这两种方式的本质区别、运作模式及其各自的适用场景…

    2025年12月8日
    000
  • 比特币主流交易平台排行榜2025 比特币实时数据对比分析

    比特币作为加密市场的领头币种,其价格波动直接影响整个币圈生态。选择一个数据更新快、下单反应迅速的平台,对于交易者而言至关重要。尤其是在行情剧烈波动时,准确把握入场与出场时机,能显著降低风险。 主流平台实时数据能力对比 目前支持比特币实时行情数据的主流平台众多,我们从数据精准度、更新频率、深度展示、成…

    2025年12月8日
    000
  • 加密货币合约与现货交易的区别是什么?币圈投资选合约还是现货?

    加密货币市场中,合约与现货交易是两种常见方式。合约强调杠杆与风险管理,现货则侧重于长期持有与稳健投资。选择合适的交易方式,将直接影响投资者的收益与风险。 一、合约交易的特点 1、杠杆放大收益:合约可通过杠杆放大资金利用率,小额投入也可能带来可观收益。2、双向交易:无论市场上涨还是下跌,投资者都可通过…

    2025年12月8日 好文分享
    000
  • 【币圈小白必看】如何读懂K线图?新手交易必备技巧!

    要稳定获利需先学会读懂K线图,1、推荐欧意OKX、Binance必安、火必HTX、Gate.io大门作为交易入口;2、K线由影线和实体组成,红涨绿跌,上下影线反映高低点,实体大小体现趋势强弱;3、常见形态有锤子线预示反弹、十字星提示变盘、吞没形态显示多头强势;4、上升趋势看高低点抬高,下降趋势看高低…

    2025年12月8日
    000
  • 【币圈小白必看】中心化与去中心化交易所区别,新手如何入门?

    对于初入数字资产领域者,应优先选择中心化交易所(CEX)进行交易。1、CEX由公司运营,资产托管于平台,用户不掌握私钥,但操作简单、流动性高且有客服支持,适合新手;2、DEX基于区块链智能合约运行,资产由用户自主掌控,安全性与隐私性更高,但操作复杂、需承担gas费且流动性可能较低;3、核心区别在于资…

    2025年12月8日
    000
  • 支持查看比特币历史行情价格走势的网站有哪些

    想看比特币历史价格?这些网站让你回顾十年行情 比特币自2009年诞生以来,价格经历了多轮暴涨暴跌,了解它的历史价格走势,有助于判断未来趋势。对于希望研究行情规律或复盘历史价格的用户来说,选择一款支持长期价格图表、历史k线和数据导出的网站非常重要。 除了专门的行情网站,你也可以通过主流交易平台查看部分…

    2025年12月8日
    000
  • 什么是Web3?2025年最新解释,一篇文章带你彻底搞懂

    Web3是“读-写-拥有”的互联网,其核心是将数据和权力交还用户。 简单来说,Web3是互联网的下一次迭代。如果说Web1是“只读”的互联网(我们消费信息),Web2是“读写”的互联网(我们消费信息,也创造内容),那么Web3就是 “读-写-拥有” 的互联网。它的核心理念是将权力和数据的所有权从大型…

    2025年12月8日
    000
  • 如何查看自己持有币种的涨跌记录?有哪些常用方法

    很多新手用户在投资加密资产后,都会想要实时追踪自己持有币种的价格变化和收益情况。然而,并不是所有平台都能清晰明了地展示币种的涨跌曲线和盈亏记录。本文将为你介绍几种主流的虚拟币涨跌记录查看方法,帮助你更高效地管理资产。 想要更专业地追踪涨跌情况,选择一款功能完善的交易所是关键。我们推荐以下两个平台: …

    2025年12月8日
    000
  • 币安交易所正规官网通道 Binance交易平台安全查询账户和资产信息

    随着各类虚假平台层出不穷,确认币安官方入口显得尤为重要。请通过以下渠道获取 binance 真实登录地址: 官方注册/登录入口:官方镜像访问通道:如您所在地区访问受限,可使用科学上网工具访问Binance官网移动端APP快速访问:下载Binance官方App(支持 Android/iOS)一键登录,…

    2025年12月8日 好文分享
    000
  • eht以太坊走势今日APP 以太坊未来几日走势分析

    本文将为大家介绍一款专业的加密货币行情与分析APP,并提供官方下载安装链接。用户只需点击本文提供的下载链接即可获取该应用。该APP覆盖了多种主流功能,包括实时行情查看、历史价格走势分析、交易所价格差对比等,为投资者提供可靠的数据支持。近期走势备受市场关注,本文推荐用户通过此APP随时掌握行情,助力更…

    2025年12月8日
    000
  • 欧易手机版app下载

    欧易(OKX)是全球领先的数字资产交易平台,成立于2017年,提供安全高效的数字货币交易服务。1. 用户可通过官网扫码下载iOS或Android版App,或通过App Store、Google Play及官方APK安装;2. 平台支持现货、合约、杠杆交易,涵盖DeFi、NFT、Web3等生态,日均交…

    2025年12月8日
    000
  • 线下炒比特币用什么软件?线下炒比特币软件前十名盘点

    本文旨在探讨“线下炒比特币”这一概念,实际上它通常指代的是不通过传统交易所订单簿,而是通过点对点(P2P)方式进行的交易。这类交易更加灵活,但也对使用的软件和平台有更高的安全要求。下文将盘点和介绍一系列用于促成此类交易的软件平台,并提供相关的安全建议,帮助用户找到合适的工具。 一、主流交易平台与入门…

    2025年12月8日 好文分享
    000

发表回复

登录后才能评论
关注微信