Я хотел бы использовать virt-manager для управления моими виртуальными машинами libvirt / kvm, работающими на удаленном хосте, но метод, который я использую для ssh на этом хосте, немного сложен. Мне нужно использовать настраиваемые порты вместе с пересылкой агента с несколькими переходами. Например, для ssh в этом поле KVM я использую сертификат идентификации по умолчанию и выполняю эту команду:
ssh -At -p 4188 www.example.com ssh -At -p 8854 virt-host.internals.int
Диалог для удаленных подключений Virtmanager кажется довольно примитивным, и мне было интересно, есть ли обходной путь?
Я думаю, у тебя две проблемы.
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 вместо имени хоста и т. д.).