9.4.2.2.3. CLI を使用して仮想マシンを作成するときに鍵を追加する


コマンドラインを使用して仮想マシン (VM) を作成するときに、静的に管理される SSH 公開鍵を追加できます。鍵は最初の起動時に仮想マシンに追加されます。

鍵は、cloud-init データソースとして仮想マシンに追加されます。この方法では、cloud-init ユーザーデータ内のアプリケーションデータからアクセス認証情報が分離されます。この方法は、cloud-init ユーザーデータには影響しません。

前提条件

  • 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
                  user: cloud-user
              name: cloudinitdisk
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  noCloud: {}
                source:
                  secret:
                    secretName: authorized-keys
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: authorized-keys
    data:
      key: c3NoLXJzYSB...

    • spec.template.spec.volumes.cloudInitNoCloud は、cloudInitNoCloud データソースを指定します。
    • spec.template.spec.accessCredentials.sshPublicKey.source.secret.secretName は、Secret オブジェクトの名前を指定します。
    • 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:
                  noCloud: {}
                source:
                  secret:
                    secretName: authorized-keys
    # ...

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る