Как прослушивать один и тот же порт, отдельный адрес, используя spice из libvirt?

Если вам не разрешено создавать доступ без пароля с помощью :ssh-keygen user@remotehost, вы можете установить обычный инструмент expect,и создайте скрипт с именемpassexpect:

#!/usr/bin/expect -f

set timeout 20
set cmd [lrange $argv 1 end]
set password [lindex $argv 0]

log_user 0
eval spawn $cmd
expect "assword:"
send "$password\r";
interact

затем в основном сценарии оболочки вы можете прочитать пароль один раз:

printf "ssh password:" >&2; read -s pass; printf "\n">&2

и используйте его в любой команде ssh:

passexpect $pass ssh user@remotehost command_for_remote_host

или для ваших целей полный сценарий будет:

#/usr/bin/env bash
printf "ssh password:" >&2; read -s pass; printf "\n">&2
./passexpect $pass ssh user@remotehost cat remoteF1.txt | diff - localF1.txt
./passexpect $pass ssh user@remotehost cat remoteF2.txt | diff - localF2.txt
1
11.09.2019, 18:23
1 ответ

Похоже на ошибку libvirt. Он проверяет конфликты портов, используя 0.0.0.0, не принимая во внимание адрес прослушивания.

Вы, вероятно, можете обойти это, используя сквозную передачу командной строки qemu для передачи допустимого -spiceаргумента в qemu, на который libvirt не будет смотреть. Не очень дружелюбный, но это вариант, если вы просто хотите, чтобы что-то работало

1
27.01.2020, 23:40

Теги

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