Соединение Virtmanager через пользовательскую команду SSH?

Я хотел бы использовать virt-manager для управления моими виртуальными машинами libvirt/kvm, работающими на удаленном хосте, но метод, который я использую для подключения ssh к этому хосту, немного сложен. Мне нужно использовать пользовательские порты вместе с переадресацией агента с несколькими прыжками. Например, чтобы ввести ssh в это поле KVM, я использую сертификат идентификации по умолчанию и выполняю эту команду:

ssh -At -p 4188 www.example.com ssh -At -p 8854 virt-host.internals.int

Диалог для удаленных подключений Virtmanager кажется довольно примитивным, и мне было интересно, есть ли обходной путь?

1 ответ

Решение

Я думаю, что у вас есть две проблемы.

1) Настройка одного соединения ssh, которое проходит через хост бастиона.

По сути, это та же проблема, что и Как я могу передавать Multihop SCP? так что иди сначала прочитай это.

2) теперь, когда вы знаете, как работать с ним в командной строке более прозрачно, вам нужно настроить его так, чтобы это происходило без параметров CLI.

Настроить ~/.ssh/config файл для пользователя, который выполняет ssh'ing. (Почти?) Все, что вы можете указать в командной строке ssh, вы можете указать в файле конфигурации.

Для этого вы хотели бы что-то вроде:

host www.example.com
    port 4188
    forwardagent yes
host virt-host.internals.int
    proxycommand ssh www.example.com nc virt-host.internals.int 8854 

Я не проверял это, поэтому синтаксис может быть отключен, но он должен заставить вас двигаться в правильном направлении.

Обратите внимание, что предполагается, что вы можете разрешить имя virt-host.internals.int с исходного клиентского компьютера. Это может быть не так (только для внутреннего DNS), и в этом случае вам придется каким-то образом помешать (например, /etc/hosts, используя ip вместо hostname и т. д.).

Другие вопросы по тегам