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 [email protected]
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.pub をgcloudツールにより、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_IPはGCPのコンソールから確認できます。