Конфигурация OpenSSH протестирована на Buildroot 2016.05, QEMU 2.5.0, хосте Ubuntu 16.04
Помимо перенаправления сети QEMU вам также потребуется чтобы правильно настроить SSH, о чем я расскажу здесь.
Начните с qemu_x86_64_defconfig
и включите пакет openssh:
make qemu_x86_64_defconfig
echo 'BR2_PACKAGE_OPENSSH=y' >> .config
make BR2_JLEVEL=$(nproc)
Затем запустите QEMU с помощью:
qemu-system-x86_64 \
-M pc \
-append root=/dev/vda \
-drive file=output/images/rootfs.ext2,if=virtio,format=raw \
-enable-kvm \
-kernel output/images/bzImage \
-m 512 \
-net nic,model=virtio \
-net user,hostfwd=tcp::2222-:22
Затем в гостевой системе:
vi /etc/ssh/sshd_config
Измените следующие настройки:
PermitRootLogin yes
PermitEmptyPasswords yes
И перезапустите сервер:
/etc/init.d/S50sshd restart
Поскольку этот файл существует, sshd запускается по умолчанию, вот источник: https://github.com/buildroot/buildroot/blob/2018.02/package/openssh/S50sshd и ключ запуска следующие операции:
/usr/bin/ssh-keygen -A
/usr/sbin/sshd
touch /var/lock/sshd
Затем с хоста:
ssh root@localhost -p 2222
В случае сбоя сначала проверьте, работает ли пересылка по сети с помощью инструмента более низкого уровня, чем sshd: например, nc -l
, как описано здесь .
также проверьте журналы сервера на гостевой системе:
less /var/log/messages
Затем в последней системе вы должны автоматизировать создание этого файла журнала с помощью BR2_ROOTFS_OVERLAY
или BR2_ROOTFS_POST_BUILD_SCRIPT
: Настройка сгенерированная целевая файловая система | buildroot.org