LoginSignup
9
6

More than 5 years have passed since last update.

terraform で GCE のインスタンス別SSH認証鍵の設定をする

Last updated at Posted at 2016-11-07

ちょっとわかりづらかったので後進のためにメモ

やりたいこと

Web UI で言うところの
image
を Terraform で設定したい。

特に「プロジェクト全体のSSH認証鍵をブロック」して、ホストに登録したつもりのない認証鍵が勝手に配置されるのを止めたい※

terraform のドキュメント https://www.terraform.io/docs/providers/google/r/compute_instance.html にはそれっぽい項目がないが、実は metadata を設定するとできる。

※プロジェクト全体のSSH認証鍵がブロックされていないと、Compute Engine > メタデータ > 認証鍵で表示される、プロジェクト全体のSSH認証鍵が自動配置されてログインできてしまう。

やり方

resource "google_compute_instance" "test" {
  name         = "test"
  machine_type = "n1-standard-1"
  zone         = "asia-east1-a"

  metadata {
    "block-project-ssh-keys" = "true"
    "ssh-keys" = "seo.naotoshi:ssh-rsa XXXXXXXXXXXX seo.naotoshi@MAC.local\nsonots:ssh-rsa XXXXX sonots@MAC.local\n"
  }
}

「プロジェクト全体のSSH認証鍵をブロック」するには block-project-ssh-keys を true に設定すれば良い。

SSH認証の公開鍵を設定するには、ssh-keys にいつもの公開鍵フォーマットの先頭に「ユーザ名:」をつけて記述し、複数指定したい場合は改行区切りで指定する。

参考文献

ちなみに gcloud compute instances describe を打つと

$ gcloud compute instances describe ホスト名
metadata:
  fingerprint: AikYwVsA9XE=
  items:
  - key: block-project-ssh-keys
    value: 'true'
  - key: ssh-keys
    value: |-
      seo.naotoshi:ssh-rsa XXXXXXXXXXXX seo.naotoshi@Mac.local
      sonots:ssh-rsa XXXXXXXXXXXX sonots@Mac.local

のように出てくるのでキー名がわかる。

追記

なお、gcloud compute ssh でのSSH認証鍵の自動配置を無効化する を行うと、プロジェクト全体のSSH認証鍵の自動配置も同時に無効化された。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6