zoukankan      html  css  js  c++  java
  • Embeded linux之移植ssh

    红字加粗为编译器不同、路径不同需要注意修改的地方

    一、源码包下载:

         本文使用版本:

      zlib-1.2.3

      openssl-0.9.8l

      openssh-7.1p2

      下面链接有已上传的配置好的源码包

      http://files.cnblogs.com/files/pokerface/zlib-1.2.3.tar.gz

      http://files.cnblogs.com/files/pokerface/openssl-0.9.8l.tar.gz

      http://files.cnblogs.com/files/pokerface/openssh-7.1p2.tar.gz

    二、创建工作目录

    安装路径:/opt/ssh/install/

    源码路径:/opt/ssh/source/

    压缩包路径:/opt/ssh/tmp/

    三、编译安装zlib

    1.修改Makefile :

    增加CROSS=arm-linux-

    CC=gcc       改为 CC=$(CROSS)gcc

    确保 LDSHARED=CC
    确保 CPP=CC - E
    AR= ar rc      改为 AR=$(CROSS) ar rc

    prefix = /opt/ssh/install/

    2.编译:

    make

    3.安装:
    make install 

    四、编译安装openssl

    1.配置

    ./Configure --prefix=/opt/ssh/install/openssl os/compiler:arm-linux-gcc
    2.编译

    make

    3.安装

    make install

    五、编译openssh

    1.配置

    ./configure --host=arm-linux --with-libs --with-zlib=/opt/ssh/install/zlib-1.2.3/ --with-ssl-dir=/opt/ssh/install/openssl-0.9.8/ --disable-etc-default-login CC=arm-linux-gcc AR=arm-linux-ar

    2.编译

    make

    3.将生成软件放到目标板对应目录

    cp scp sftp ssh ssh-add ssh-agent ssh-keygen ssh-keyscan /opt/filesystem/imx6/rootfs/usr/local/bin/

    cp moduli ssh_config sshd_config /opt/filesystem/imx6/rootfs/usr/local/

    cp moduli ssh_config sshd_config /opt/filesystem/imx6/rootfs/usr/local/etc/

    cp sftp-server ssh-keysign /opt/filesystem/imx6/rootfs/usr/libexec/

    cp sshd /opt/filesystem/imx6/rootfs/usr/sbin/

    chmod 777 /opt/filesystem/imx6/rootfs/usr/local/bin/*

    chmod 777 /opt/filesystem/imx6/rootfs/usr/sbin/*

    六、生成密钥文件

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

    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 ""

    chmod 600 ssh_host_ed25519_key

    cp ssh_host_* /opt/filesystem/imx6/rootfs/usr/local/etc/

    七、修改ssh配置文件

    1. /usr/local/sshd_config,将PermitRootLogin yes前的注释“#”号去掉。
    2. /etc/passwd 文件,在最后添加下面这一行:
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

    3.如果开发板的 root 用户还没有密码,键入以下命令然输入两次密码来修改,否其他设备无法连:

      passwd root 

    4.将sshd加入开机启动项

      修改/etc/init.d/rcS增加/usr/sbin/sshd 

    八、软件远程登录

    如果出现

    找不到匹配的outgoing encryption算法

    问题出现在xshell版本太低,没有相应加密算法,更换新的就行了,我用的xshell5,xshell3就不支持最新sshd加密

     POD document had syntax errors at /usr/bin/pod2man line 71.

    问题出现在由于OpenSSL 1.0.1e 与 perl5.18 不兼容,删除 pod2man文件:sudo rm /usr/bin/pod2man

    cp: cannot create regular file ‘openssl/include/openssl/crypto.h’: No such file or directory

    问题出现在由于配置时使用了相对路径,改为绝对路径就可以了

  • 相关阅读:
    一种不求交点确定直线与三角形是否相交的方法
    碰撞边界锯齿的平滑方法
    demo的凹凸贴图效果
    MySQL进阶篇触发器
    MySQL进阶篇索引
    Maven的POM文件详解
    Swagger
    MySQL进阶篇存储过程
    SpringBoot基础篇
    MySQL基础篇多表操作
  • 原文地址:https://www.cnblogs.com/pokerface/p/6644102.html
Copyright © 2011-2022 走看看