Как к SSH от хоста до гостя, использующего QEMU?

Кажется, что smbd пытается автоматически загрузить модуль ядра net-pf-10, который является псевдонимом для ipv6. Это, по-видимому, не разрешено в SELinux, так как обоснованно не ожидалось, что модуль не будет загружен (или что Вы попросили бы привязку IPv6 с отключенным IPv6).

Существует по крайней мере два возможных способа разрешить это.

  1. Повторно включите IPv6 в масштабе всей системы (так как Вы почти наверняка отключили его; это - только одна из многих проблем, которые отключение IPv6 вызовет).
  2. Реконфигурируйте Samba, чтобы не попытаться связать с любым адресом IPv6. Изменитесь interfaces строка в smb.conf связывать с Вашим желаемым IPv4 обращается только. Пример:

    interfaces = 127.0.0.1 198.51.100.87
    bind interfaces only = yes
    
31
10.03.2018, 17:58
4 ответа
[115803] Я думаю, что ошибка исходит не от оператора -net, а от:

В операторе уже используется порт 7777. Для переадресации портов, с помощью

он работает нормально, когда не настраивается виртуальный последовательный канал.

Если я правильно понял, вы хотите настроить виртуальный последовательный канал для связи с хоста на ВМ с помощью доменного сокета Unix?

В этом случае это может сделать следующее:

EDIT:

Пример подключения с хоста с помощью ssh к ВМ:

Эта переадресация хоста отображает порт 10022 локального хоста (host) на порт 22 на ВМ. Как только ВМ была запущена таким образом, вы можете получить доступ к ней с localhost следующим образом:

Команда -net nic инициализирует очень простую виртуальную сетевую карту.[115820].

39
27.01.2020, 19:37
[114820]Полагаю, вам необходимо использовать [115201]hostfwd=tcp::7777-:8001[115202] или [115203]hostfwd=tcp::7777:8001[12119]
-1
27.01.2020, 19:37

Примерьте это при запуске qemu -redir tcp:2222::22

$ ssh -p 2222 localhost

Флаг tcp:2222::22 в команде запуска qemu сопоставляет порт 2222 машины-хоста с портом 22 (порт ssh по умолчанию) на виртуальной машине.

Затем, простое переключение ssh на 2222 порт вашего локального хоста (хост-машины) перенаправит любой трафик на 22 порт ssh на виртуальной машине, что должно позволить вам использовать ssh так же, как вы обычно используете любую другую машину.

20
27.01.2020, 19:37

Конфигурация 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

4
27.01.2020, 19:37

Теги

Похожие вопросы