公開鍵(生成)(sakuracloud_ssh_key_gen)


全ゾーン共通のグローバルリソースです。

SSH公開鍵をさくらのクラウド側で生成するためのリソースです。

  • このリソースはimport非対応です。
  • このリソースは更新動作に非対応です。属性を変更した場合は常に再生成されます。

設定例

resource "sakuracloud_ssh_key_gen" "key" {
  name = "foobar"

  # パスフレーズ(オプション、指定する場合は8〜64文字)
  # pass_phrase = "your_pass_phrase"

  description = "Description"
}

パラメーター

パラメーター 必須 名称 初期値 設定値 補足
name 公開鍵名 - 文字列 64文字まで
pass_phrase - パスフレーズ - 文字列 空文字、または8〜64文字まで
description - 説明 - 文字列 512文字まで

属性

属性名 名称 補足
id 公開鍵ID -
private_key 秘密鍵 生成された秘密鍵
public_key 公開鍵 -
fingerprint フィンガープリント -

利用例

サーバのプロビジョニング時、SSH接続用に公開鍵(生成)を利用する

#SSH公開鍵
resource sakuracloud_ssh_key_gen "key" {
  name = "foobar"

  provisioner "local-exec" {
    command = "echo \"${self.private_key}\" > id_rsa; chmod 0600 id_rsa"
  }

  provisioner "local-exec" {
    when    = "destroy"
    command = "rm -f id_rsa"
  }
}

#OS(CentOS)
data sakuracloud_archive "centos" {
  os_type = "centos"
}

#ディスクの定義
resource sakuracloud_disk "foobar" {
  name              = "foobar"
  source_archive_id = "${data.sakuracloud_archive.centos.id}"
}

#サーバの定義
resource sakuracloud_server "foobar" {
  name  = "foobar"
  disks = ["${sakuracloud_disk.foobar.id}"]

  password          = "PUT_YOUR_PASSWORD_HERE"
  # 生成した公開鍵のIDを指定
  ssh_key_ids = ["${sakuracloud_ssh_key_gen.key.id}"]
  # SSH接続時のパスワード/チャレンジレスポンス認証を無効化
  disable_pw_auth = true

  # プロビジョニング
  connection {
    user        = "root"
    host        = "${self.ipaddress}"
    private_key = "${sakuracloud_ssh_key_gen.key.private_key}"
  }

  provisioner "remote-exec" {
    inline = [
      "hostname",
    ] # 実行したいコマンドを指定
  }
}

#SSH接続用のアウトプット定義
output "ssh_to_server" {
  value = "ssh -i id_rsa root@${sakuracloud_server.foobar.ipaddress}"
}