9.6.2.3.4. CLI を使用して動的キーインジェクションを有効にする


コマンドラインを使用して、仮想マシンの動的キーインジェクションを有効にすることができます。その後、実行時に SSH 公開鍵を更新できます。

注記

Red Hat Enterprise Linux (RHEL) 9 のみが動的キーインジェクションをサポートしています。

キーは QEMU ゲストエージェントによって仮想マシンに追加され、RHEL 9 とともに自動的にインストールされます。

前提条件

  • ssh-keygen コマンドを実行して、SSH 鍵ペアを生成しました。
  • OpenShift CLI (oc) がインストールされている。

手順

  1. VirtualMachine オブジェクトと Secret オブジェクトのマニフェストファイルを作成します。

    マニフェストの例:

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      dataVolumeTemplates:
        - metadata:
            name: example-vm-volume
          spec:
            sourceRef:
              kind: DataSource
              name: rhel9
              namespace: openshift-virtualization-os-images
            storage:
              resources: {}
      instancetype:
        name: u1.medium
      preference:
        name: rhel.9
      runStrategy: Always
      template:
        spec:
          domain:
            devices: {}
          volumes:
            - dataVolume:
                name: example-vm-volume
              name: rootdisk
            - cloudInitNoCloud:
                userData: |-
                  #cloud-config
                  runcmd:
                  - [ setsebool, -P, virt_qemu_ga_manage_ssh, on ]
              name: cloudinitdisk
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  qemuGuestAgent:
                    users: ["cloud-user"]
                source:
                  secret:
                    secretName: authorized-keys
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: authorized-keys
    data:
      key: c3NoLXJzYSB...
    • spec.template.spec.volumes.cloudInitNoCloud は データソースを定義します。たとえば、userData です
    • spec.template.spec.accessCredentials.sshPublicKey.source.secret.secretName はシークレット オブジェクトの名前を定義します。
    • シークレット オブジェクト内の data.key は、完全な公開 SSH 鍵を定義します。
  2. 次のコマンドを実行して、VirtualMachine オブジェクトと Secret オブジェクトを作成します。

    $ oc create -f <manifest_file>.yaml
  3. 次のコマンドを実行して仮想マシンを起動します。

    $ virtctl start vm example-vm -n example-namespace

検証

  • 仮想マシン設定を取得します。

    $ oc describe vm example-vm -n example-namespace

    出力例:

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      template:
        spec:
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  qemuGuestAgent:
                    users: ["cloud-user"]
                source:
                  secret:
                    secretName: authorized-keys
    # ...
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る