QEMU 实验 (五) : OpenSSH 移植

2022-07-12  本文已影响0人  wjundong

OpenSSH 移植

需要依赖 zlib 和 openssl 参考

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 
上一篇下一篇

猜你喜欢

热点阅读