7.5.2.2.3. コマンドラインを使用して仮想マシンを作成するときにキーを追加する


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

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

前提条件

  • ssh-keygen コマンドを実行して、SSH 鍵ペアを生成しました。

手順

  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
      running: true
      template:
        spec:
          domain:
            devices: {}
          volumes:
            - dataVolume:
                name: example-vm-volume
              name: rootdisk
            - cloudInitNoCloud: 
    1
    
                userData: |-
                  #cloud-config
                  user: cloud-user
              name: cloudinitdisk
          accessCredentials:
            - sshPublicKey:
                propagationMethod:
                  noCloud: {}
                source:
                  secret:
                    secretName: authorized-keys 
    2
    
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: authorized-keys
    data:
      key: c3NoLXJzYSB... 
    3

    1
    cloudInitNoCloud データソースを指定します。
    2
    Secret オブジェクト名を指定します。
    3
    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 では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る