交叉编译ssh服务器(openssh)

一:下载zlib openssl openssgh源码

            下载:openssh-8.5p1.tar.gz

                       openssl-1.1.1k.tar.gz

                       zlib-1.2.2.tar.gz

             下载地址:openssh相关源码资源-CSDN文库

二:编译安装以(aarch64-linux-gnu为例)

        1:解压下载的压缩包      

                tar -vxzf zlib.tar.gz

                tar -vxzf openssl.tar.gz

                tar -vxzf openssh.tar.gz  

        2:编译zlib

                cd zlib-1.2.2

                ./configure --prefix=/usr/local/openssh/zlib-1.2.2/_install

                sed -i 's/CC=gcc/CC=aarch64-linux-gnu-gcc/g'                  Makefile

                sed -i 's/LDSHARED=gcc/LDSHARED=aarch64-linux-gnu-gcc/g'      Makefile

                sed -i 's/CPP=gcc/CPP=aarch64-linux-gnu-gcc/g'                Makefile

                sed -i 's/AR=ar/AR=aarch64-linux-gnu-ar/g'                    Makefile

                sed -i 's/RANLIB=ranlib/RANLIB=aarch64-linux-gnu-arranglib/g' Makefile

                make -j24

                make install

                cd ..

        3: 编译openssl

                cd openssl-1.1.1k

                ./config no-asm shared                                          \

                --prefix=/usr/local/openssh/openssl-1.1.1k/_install \

                --cross-compile-prefix=aarch64-linux-gnu-                      

                sed -i 's/-m64/  /g'                  Makefile

                sed -i 's/-m64/  /g'                  Makefile

                make -j24

                make install

                cd ..

        4: 编译openssh

                cd openssh-8.5p1

                ./configure --host=aarch64-linux-gnu --with-libs                      \

                --with-privsep-path=/usr/local/openssh/openssh-8.5p1/_install/var \

                --with-zlib=/usr/local/openssh/zlib-1.2.2/_install        \

                --with-ssl-dir=/usr/local/openssh/openssl-1.1.1k/_install \

                --disable-strip                                                        \

                CC=aarch64-linux-gnu-gcc AR=aarch64-linux-gnu-ar

                make -j24

                sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' sshd_config

                cp sshd ../../output/mc6670_chip/rootfs_uclibc/sbin/

                cp sshd_config ../../output/mc6670_chip/rootfs_uclibc/etc/

                sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' sshd_config

                make install

三:将编译好的文件和库放到开发板相关的目录

        1:确保开发板有以下目录,没有则创建

                /usr/local/bin/

                /usr/local/sbin/

                /usr/local/etc/

                /usr/local/libexec/

                /var/run/

                /var/empty/

        2:将编译生成的scp  sftp  ssh  ssh-add  ssh-agent  ssh-keygen  ssh-keyscan拷贝到开发板/usr/local/bin/

              sshd 拷贝到开发板 /usr/local/sbin/

              moduli ssh_config sshd_config拷贝到开发板/usr/local/etc/

              sftp-server  ssh-keysign 拷贝到开发板/usr/local/libexec

      3:在主机openssh-8.5p1目录,运行以下命令生成KEY文件

              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_host_*_key这3个文件copy到开发板的 /usr/local/etc/目录下,或者在开发板 /usr/local/etc/目录直接使用命令生成文件

        4:将之前编译zlib生成的libz.so.1文件拷贝到开发板/usr/lib

        5:修改开发板的passwd文件

              在开发板/etc/passwd 中添加下面这一行sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

        6:测试

             在开发板运行 #/usr/local/sbin/sshd

    

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值