GCP:ローカルマシンからVMインスタンスへのSSH接続

GCPで作成したVMインスタンスへの接続は、
ブラウザのGCP管理画面—>VMインスタンスの項目—>SSH接続を選択
ブラウザによるターミナル画面が表示され、SSHによる接続が行われます。

外部PC(Linux端末)のターミナル経由でSSH接続する場合には、下記準備が必要となります。

SSH認証キーの作成

外部端末でVMインスタンスの管理ユーザ(gmailアドレスユーザ:your_user_name)を指定して認証キーを作成します。認証キーのファイル名gcp-instanceは任意です。初回SSH接続時に必要となるプライベートキーへのパスワード入力が求められますが、これも任意です。

$ ssh-keygen -t rsa -f ~/.ssh/gcp-instance -C your_user_name

~/.sshフォルダにgcp-instance,gcp-instance.pubというプライベートキー、パブリックキーが作成されます。

パブリックキーの中身をコピーします。

$ cat ./.ssh/gcp-instance.pub

ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAADDDDDDDDDXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................. ............. your_user_name

作成したVMインスタンスをクリックすると、インスタンスの詳細が表示されます。編集をクリックするとSSH認証キーを追加するアイコンが表示されるので、ここをクリックして先程作成したパブリックキーの中身をコピーペーストします。

端末のターミナルでSSH認証に必要なプライベートキーを指定してSSH接続します。xx.xx.xx.xxはVMインスタンスに割当てられている外部IPです。

$ ssh -i ~/.ssh/gcp-instance your_user_name@xx.xx.xx.xx

OSログインを有効にした場合(enable-oslogin:TRUE)

注意)
OSログインをメタデータの項目で指定して有効にした場合には、外部から全てのVMインスタンスへのSSH接続は拒否されます。この場合、外部からSSH接続したいVMインスタンスでOSログインを無効にする必要が有ります。カスタムメタデータでenable-oslogin: FALSEを追加します。

OSログイン

OS Login マネージド SSH 接続


OS Loginを有効にした場合のSSH接続の手順について

まず初めに以下を参照しOS Loginを有効化して下さい。

オプション 1: プロジェクト全体のメタデータに enable-oslogin を設定して、プロジェクト内のすべてのインスタンスに適用する。

オプション 2: 既存のインスタンスのインスタンス メタデータに enable-oslogin を設定する。


ローカルマシンにGoogle-Cloud-SDKを事前にインストールします。

以下の記事を参照しgcloudツールGoogleアカウント及びGCPプロジェクトとの紐づけを行います。


ローカルマシンでSSH認証キーペアを作成します。

$ ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USER -b 2048

認証キーペアの公開キー KEY_FILENAME.pubgcloudツールにより、GCPのプロジェクトへ追加します。

$ gcloud compute os-login ssh-keys add \
    --key-file=KEY_FILE_PATH \
    --project=PROJECT \
    --ttl=EXPIRE_TIME
  • KEY_FILE_PATH: ワークステーションの公開SSH認証鍵のパス。鍵は public-openssh 形式を使用する必要があります。
  • PROJECT: 省略可。SSH 認証鍵を使用するプロジェクト。このフィールドを指定すると、組織外のプロジェクトまたは Cloud Identity のメンバーではないプロジェクトで SSH 認証鍵を使用できます。
  • EXPIRE_TIME: 省略可。SSH 認証鍵の有効期限。

ローカルマシンからのSSH接続

$ ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

SSH認証キーのプライベートキーを指定。EXTERNAL_IPGCPのコンソールから確認できます。