TQ2440下的openssh移植

发布者:Amybaby最新更新时间:2020-02-26 来源: eefocus关键字:TQ2440  openssh  移植 手机看文章 扫描二维码
随时随地手机看文章

移植ssh到arm 今天在internet上参考了几位前辈文章, 将ssh移植到了TQ2440的arm板上, 现在不需要用minicom来控制uclinux了。 板子上的串口终于可以接上采集器。 主要参考文章:


http://blog.chinaunix.net/u1/43047/showart_371372.html

http://blog.chinaunix.net/u2/63379/showart_513655.html

 


1.下载需要的源码:

    mkdir -p ~/arm/fs ;mkdir -p ~/arm/source

    下载zlib:  wget -c http://www.zlib.net/zlib-1.2.3.tar.gz

    下载ssl:  wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz

    下载ssh: wget -c http://mirror.mcs.anl.gov/openssh/portable/openssh-4.6p1.tar.gz



2.编译:

    cd ~/arm/source


    (1) 编译zlib:

     tar zxvf zlib-1.2.3.tar.gz -C .

     cd zlib-1.2.3/

     ./configure --prefix=/home/itlanger/arm/fs/zlib-1.2.3

    修改Makefile:

       CC=gcc 改为: 

       CROSS=/usr/local/arm/3.4.1/bin/arm-linux-

       CC=$(CROSS)gcc 

       LDSHARED=gcc 改为: LDSHARED=$(CROSS)gcc

       CPP=gcc -E   改为:  CPP=$(CROSS)gcc -E

       AR=ar rc     改为: AR=$(CROSS)ar rc

  开始编译: make;

           make install


   (2)  编译openssl:

       tar zxvf openssl-0.9.8d.tar.gz

      ./configure --prefix=/home/itlanger/arm/fs/openssl-0.9.8d

     os/compiler:/usr/local/arm/3.4.1/bin/arm-linux-gcc

    make

    make install


   (3) 编译openssh:

      tar zxvf openssh-4.6p1.tar.gz

      cd openssh-4.6p1/

      ./configure --host=arm-linux --with-libs --with-zlib=/home/itlanger/arm/fs/zlib-1.2.3

         --with-ssl-dir=/home/itlanger/arm/fs/openssl-0.9.8d --disable-etc-default-login     

         CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc AR=/usr/local/arm/3.4.1/bin/arm-linux-ar

      make

      ##不要make install


3.安装

    

    (1) 将 openssh-4.6p1目录下的 sshd 拷贝到 目标板的/usr/sbin目录下

    (2) 再copy scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan  到目标板/usr/local/bin目录下

            copy sftp-server  ssh-keysign    到/usr/local/libexec

       

    (3) 在目标板下:

        mkdir -p /usr/local/etc/  

        然后将openssh下的sshd_config,ssh_config 拷贝到该目录下


        mkdir -p /var/run; mkdir -p /var/empty/sshd 

        chmod 755 /var/empty     

    (4)在主机上:

         ssh-keygen -t rsa1 -f ssh_host_key -N ""

         ssh-keygen -t rsa -f ssh_host_rsa_key -N ""

         ssh-keygen -t dsa -f ssh_host_dsa_key -N ""

        将生成的 ssh_host_* 几个文件copy到目标板的 /usr/local/etc/目录下(可使用cp ssh_host_* /usr/local/etc/命令拷贝到目标板)

(5) 添加用户:

将主机上 /etc/目下的passwd, shadow, group 三个文件copy到目标板的 /etc目录下, 同时记得将passwd的最后 /bin/bash 该为 /bin/sh

//这一步以后,开发板上的用户结构与你本机的结构就是一样的了,所以在cp之前先把你自己的root密码设好

//#passwd设置root密码,然后在把上面3个文件cp到开发板/etc下

      其实可以删除不需要的一些用户。

      这一步也可以这样,在目标板的passwd中添加sshd用户:

      sshd:x:110:65534::/var/run/sshd:/usr/sbin/nologin

      在shadow中也添加对应的项就行了:

      sshd:!:14069:0:99999:7:::

     

4.测试

     目标板启动sshd:  # /usr/sbin/sshd

//在开发板上运行这个命令的时候可能会提示

//Privilege separation user sshd does not exist

//需要在开发板的系统里adduser shhd

//或者在 /etc/passwd 中添加下面这一行


sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin


主机: $ ssh root@192.168.0.34(开发板的ip)//root密码就是你本机上root的密码


ps: 红色的那些代表让arm做ssh server时必须的

------------------------------------------------

下边进行免密码登录设置:

cp(主机) root/.ssh/id_dsa.pub 到 (开发板)/.ssh/authorized_keys

---------------------------------------------------

如何让板子开机以后自动启动sshd服务:


添加:/etc/rc.d/init.d/sshd


#!/bin/sh                                                                       

base=sshd                                                                       

# See how we were called.                                                       

case "$1" in                                                                    

  start)                                                                        

                /usr/sbin/$base                                                     

        ;;                                                                      

  stop)                                                                         

        pid=`/bin/pidof $base`                                                  

        if [ -n "$pid" ]; then                                                  

                kill -9 $pid                                                    

        fi                                                                      

        ;;                                                                      

esac                  


在更改/etc/init.d/rcS,添加:


mkdir -p /var/empty/sshd

/etc/rc.d/init.d/sshd start


然后重启机器,一切OK!



我移植成功后出现以下问题:


Could not load host key: /etc/ssh/ssh_host_rsa_key


问题的解决


症状:


用命令/usr/sbin/sshd启动sshd时出现:


系统提示“Could not load host key: /etc/ssh/ssh_host_key


问题所在:


    1、系统丢失了ssh_host_dsa_key和ssh_host_rsa_key


    2、用户没有权限访问这两个key


解决办法如下:


1、系统丢失了两个key时:


在终端中输入:ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key重新建立ssh_host_dsa_key文件


以下是返回信息


Generating public/private dsa key pair.


Enter passphrase (empty for no passphrase):(直接回车)


Enter same passphrase again:


Your identification has been saved in /etc/ssh/ssh_host_dsa_key.


Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.


The key fingerprint is:


xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@localhost.localdomain


在终端中输入:ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key重新建立ssh_host_rsa_key文件


以下是返回信息


Generating public/private rkey pair.


Enter passphrase (empty for no passphrase):(直接回车)


Enter same passphrase again:


Your identification has been saved in /etc/ssh/ssh_host_rsa_key.


Your public key has been saved in /etc/ssh/ssh_host_dsa_rey.pub.


root@localhost.localdomain


现在用


/usr/sbin/sshd


即可成功启动sshd


这时候,就可以在windows底下使用putty连接这台linux主机了。


2、当前用户没有权限的时候用命令


/usr/sbin/sshd


启动sshd的时候也会这样,所以这是检查是否是root用户,一般root用户才能执行这个操作


二 配置sftp


网上的很多方法,大多是说怎么固定在一个目录下,我不需要这个,弄了半天,winSCP连不上,后来直接把Joggler中文系统中人家做好的sshd_config复制过来,改下路径,搞定了 哈哈


新建一个sshd_config,使用以下代码,并将该文件复制到目标板的/usr/local/etc/下,覆盖原文件


# Package generated configuration file


# See the sshd(8) manpage for details


# What ports, IPs and protocols we listen for


Port 22


# Use these options to restrict which interfaces/protocols sshd will bind to


#ListenAddress ::


#ListenAddress 0.0.0.0


Protocol 2


# HostKeys for protocol version 2


#HostKey /etc/ssh/ssh_host_rsa_key


#HostKey /etc/ssh/ssh_host_dsa_key


#Privilege Separation is turned on for security


UsePrivilegeSeparation yes


# Lifetime and size of ephemeral version 1 server key


KeyRegenerationInterval 3600


ServerKeyBits 768


# Logging


SyslogFacility AUTH


LogLevel INFO


# Authentication:


LoginGraceTime 120


PermitRootLogin yes


StrictModes yes


RSAAuthentication yes


PubkeyAuthentication yes


#AuthorizedKeysFile %h/.ssh/authorized_keys


# Don't read the user's ~/.rhosts and ~/.shosts files


IgnoreRhosts yes


# For this to work you will also need host keys in /etc/ssh_known_hosts


RhostsRSAAuthentication no


# similar for protocol version 2


HostbasedAuthentication no


# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication


#IgnoreUserKnownHosts yes

[1] [2]
关键字:TQ2440  openssh  移植 引用地址:TQ2440下的openssh移植

上一篇:Python2.5.4移植到arm-linux
下一篇:goAhead 2.5嵌入式web服务器移植到arm9 2440 + linux中

推荐阅读最新更新时间:2024-11-02 01:22

TQ2440 学习笔记—— 7、NOR Flash 和 NAND Flash
非易失闪速存储器Flash 具有速度快、成本低、密度大的特点。 Flash 存储器主要有 NOR Flash 和 NAND Flash两种类型,总的来说, NOR 型比较适合存储程序代码,NAND 型则可用做大容量数据存储。 1、NOR 型 Flash 存储器 NOR Flash 技术是由Intel 公司于1988年首先开发,它的出现彻底改变了原先由EPROM和EEPROM一统天下的局面。 NOR 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序就可以直接在Flash 闪存内运行,不必再把代码读到系统的RAM中。NOR 的传输效率很高,但写入速度与擦除速度很低。NOR Flash 就是一
[单片机]
基于MC68HC908GP32的μC/OS-II移植
在前几讲中,介绍了μC/OS-II的概念、工作机制,还介绍了μC/OS-II在Intel 80X86CPU上的移植,相信读者通信学习,已经对移植的过程和步骤有了一定的了解。由于RAM容量的限制,移植就存在一定的困难;但对于有些8位的MCU,将μC/OS-II移植到MOTOROLA MC68H908GP32(以下简称GP32)上。 一、在GP32上移植μC/OS-11的主要问题 GP32为韩国Gamepark株式会社自行开发的掌上游戏机,于2001年10月开始发售。主机使用3.5英寸TFT-LCD液晶,解决了STN-LCD画面暗的缺点(GBA存在这样的问题)同时也解决了画面残象的问题,玩动作游戏画面更流畅。主机参数 名称- G
[单片机]
STM32L0开发笔记8: USB驱动的移植
现在使用的STM32L053R8T6单片机带有USB接口,原先一直使用UART转USB芯片来完成USB功能的支持,现在这款单片机带了就希望使用以下。由于已经建立了自己的工程目录,再重新使用STM32CubeMX生成的工程文件,重新建立是不显示的,所以本文探索将USB驱动文件移植到自己项目中的方法,我使用的是USB的CDCD类,步骤如下: 1、使用STM32CubeMX使能USB,如下图所示: 2、设置时钟,USB需要48M时钟,使用内部和外部均可,我这里使用外部时钟。 3、生成工程文件。 4、在自己的工程目录中加入如下图所示的2个文件,如果此2个文件不存在,则从新生成的工程目录中复制即可(包含
[单片机]
uCOS-II在MSP430上的移植1——准备工作
学习uC/OS-II有一段时间了,下了上百兆的资料。网上可以找到很多移植好的工程,参考别人的,稍微修改下,编译调试通过了,用起来始终觉得不是很踏实,毕竟不知道别人修改了哪些地方。静心整理了下思路,决定自己动手,从最原始的文件修改,把uCOS-II移植到MSP430F169上。 一、准备工作 (1)μC/OS-II中文教程.CHM ——《嵌入式实时操作系统uC/OS-II(第2版)邵贝贝译》一书的电子版。也可在网上查找相关的电子文档。作为工具手册,在移植过程中碰到不理解的可以随时查看. (2)μC/OS-II操作系统的源代码,版本为V2.86。 官方下载地址: http://www.micrium.com/pro
[单片机]
嵌入式驱动移植之看门狗驱动移植
移植环境 主机开发环境:ubuntu12.04 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 移植步骤 1、启动看门狗 在 2.6.30.4 的内核中对看门狗的驱动是已经添加了的,不过驱动程序还需要进行简单的修改。 修改内核源码的“drivers/watchdog/s3c2410_wdt.c”文件,修改 62 和 63 行,内容如下: #undef S3C_VA_WATCHDOG #define S3C_VA_WATCHDOG (0) #include asm/plat-s3c/regs-watchdog.h #defi
[单片机]
嵌入式驱动<font color='red'>移植</font>之看门狗驱动<font color='red'>移植</font>
uboot移植初步成功啦
 先说说移植吧,代码上的移植:只是基于代码的改动,而不包括知道代码改动的背后~~  移植的uboot版本为1.4版,用的编译工具链为arm-elf-。不能用arm-linux编译,原因是用的c库不同。简单的说就是arm-linux是为有MMU硬件单元的处理器配置的,如ARM9器件,而arm-elf-则是用于无MMU的cpu的,如ARM7。(也试了一下,用arm-linux-编译得到的uboot.bin加载到SDRAM中运行后无显示)。arm-elf-gcc版本为2.93版本的(有点低,还需要修改cpus3c44b0config.mk,后面提到)。在uboot1.4版本中符合s3c44b0内核的板子为daveB2板,移植就是基于该板子
[单片机]
uboot<font color='red'>移植</font>初步成功啦
u-boot-2011.06在基于s3c2440开发板的移植之硬件ECC
为了理解u-boot是如何进行硬件ECC的,我们先来简要地分析一下相关的函数。NandFlash是以页为最小单位进行读写操作的,支持硬件ECC的读操作最终是由nand_read_page_hwecc函数(在drivers/mtd/nand目录下)来完成的,支持硬件ECC的写操作最终是由nand_write_page_hwecc函数(在drivers/mtd/nand目录下)来完成的。nand_read_page_hwecc函数的流程为先读取main区数据,同时通过调用s3c2440_nand_calculate_ecc函数来得到硬件ECC;再读取spare区数据;然后提取出储存在spare区内的main区ECC;最后通过调用s3c
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十七)---移植PWM控制蜂鸣器
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】硬件原理 Mini2440 板带有一个蜂鸣器,它是由PWM 控制的,下面是它的连
[单片机]
Linux-2.6.32.2内核在mini2440上的<font color='red'>移植</font>(十七)---<font color='red'>移植</font>PWM控制蜂鸣器
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved