Virt-managerを使用して、リモートホストで実行されているlibvirt/kvm仮想マシンを管理したいのですが、そのホストにSSH接続するために使用する方法は少し複雑です。複数のホップを使用したエージェント転送とともにカスタムポートを使用する必要があります。たとえば、そのKVMボックスにSSHで接続するには、デフォルトの識別証明書を使用して、次のコマンドを実行します。
ssh -At -p 4188 www.example.com ssh -At -p 8854 virt-Host.internals.int
Virtmanagerリモート接続のダイアログはかなり原始的なようで、回避策があるかどうか疑問に思っていましたか?
2つの問題があると思います。
1)要塞ホストを経由する単一のssh接続を設定します。
これは基本的に マルチホップSCP転送を行うにはどうすればよいですか? と同じ問題なので、最初に読んでください。
2)コマンドラインでより透過的に処理する方法がわかったので、CLIオプションなしで処理されるように設定する必要があります。
Sshを実行するユーザー用に~/.ssh/config
ファイルを設定します。 (ほぼ?)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を使用するなど)。