美文网首页
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