美文网首页
QEMU 实验 (五) : OpenSSH 移植

QEMU 实验 (五) : OpenSSH 移植

作者: wjundong | 来源:发表于2022-07-12 22:45 被阅读0次

    OpenSSH 移植

    需要依赖 zlib 和 openssl 参考

    • zlib

      cd $LFS/src
      wget https://www.zlib.net/zlib-1.2.12.tar.xz
      tar -xvf zlib-1.2.12.tar.xz
      cd zlib-1.2.12
      CC=arm-linux-gnueabi-gcc ./configure --prefix=$LFS/rootfs
      make -j8 
      make install
      
    • openssl

      cd $LFS/src
      wget https://www.openssl.org/source/openssl-3.0.5.tar.gz
      tar -xvf openssl-3.0.5.tar.gz
      cd openssl-3.0.5
      ./Configure linux-armv4 --cross-compile-prefix=arm-linux-gnueabi- --prefix=$LFS/rootfs
      make -j8
      make install
      
    • openssh

      cd $LFS/src
      wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
      tar -xvf openssh-9.0p1.tar.gz
      cd openssh-9.0p1
      ./configure  --host=arm-linux-gnueabi \
            --with-ssl-dir=$LFS/rootfs/ --with-zlib=$LFS/rootfs     \
          --disable-etc-default-login --disable-strip 
      make -j8
      

    Openssh 在 make install 时有一些坑, 因为 make install 是在 x86, 它试图是在本机安装和配置, 因此会 install 失败,因此需要手动安装

    安装

    将分别放在 /usr/libexec /usr/local/etc /usr/local/bin

    mkdir -p $LFS/rootfs/usr/local/bin $LFS/rootfs/usr/libexec $LFS/rootfs/usr/local/etc
    # 在安装目录下
    cp scp sftp ssh sshd ssh-add ssh-agent ssh-keygen ssh-keyscan $LFS/rootfs/usr/local/bin
    cp sftp-server ssh-keysign $LFS/rootfs/usr/libexec
    cp moduli ssh_config sshd_config $LFS/rootfs/usr/local/etc
    

    手动安装需要手动生成 host-key

    ssh-keygen -t rsa1 -f $LFS/rootfs/usr/local/etc/ssh_host_key -N ""
    ssh-keygen -t dsa -f $LFS/rootfs/usr/local/etc/ssh_host_dsa_key -N ""
    ssh-keygen -t rsa -f $LFS/rootfs/usr/local/etc/ssh_host_rsa_key -N ""
    ssh-keygen -t ecdsa -f $LFS/rootfs/usr/local/etc/ssh_host_ecdsa_key -N ""
    

    为 sshd 添加用户

    mkdir -p $LFS/rootfs/var/empty/sshd
    echo "sshd:x:74:74::/var/empty/sshd:/sbin/nologin" >> $LFS/rootfs/etc/passwd
    

    更新系统镜像

    sudo mount -o loop $LFS/dst/rootfs.img /mnt
    sudo cp $LFS/rootfs/* /mnt -r
    sudo umount /mnt
    

    加入网络设置

    qemu-system-arm                                         \
        -M vexpress-a9                                  \
        -m 512M                                         \
        -kernel $LFS/dst/zImage                         \
        -net nic -net user,hostfwd=tcp::10021-:22               \
        -dtb $LFS/dst/vexpress-v2p-ca9.dtb              \
        -sd $LFS/dst/rootfs.img                         \
        -append "root=/dev/mmcblk0 rw console=ttyAMA0"
    

    主机上登录

    ssh root@127.0.0.1 -p 10021 
    

    相关文章

      网友评论

          本文标题:QEMU 实验 (五) : OpenSSH 移植

          本文链接:https://www.haomeiwen.com/subject/uofzbrtx.html