| この記事の要点 |
|
接続方法の比較
| 方法 | 準備 | 向いている場面 |
|---|---|---|
| コンソールの「SSH」ボタン | 不要(ブラウザで開く) | とりあえず中に入りたい、鍵の登録作業をしたい |
gcloud compute ssh | Google Cloud CLI のインストールとログイン | 鍵の作成・登録を自動でやってほしい |
| ssh クライアント + 自分の鍵 | 鍵の作成とメタデータへの登録(本記事の手順) | 普段の ssh・scp・rsync、VS Code Remote などのツールから接続したい |
手軽さだけなら gcloud が便利ですが、普段使いの ssh クライアントや他のツールからそのまま接続したい場合は、以下の手順で鍵を登録します。
ローカルの作業: 鍵を作成する
ローカル PC(Mac・Linux、Windows なら PowerShell)で鍵を作成します。
ssh-keygen -t ed25519 -C "ユーザー名" -f ~/.ssh/gce_key
# RSA を使う場合
ssh-keygen -t rsa -b 4096 -C "ユーザー名" -f ~/.ssh/gce_key
鍵の作成コマンドの詳しい使い方は ssh-keygen を参照してください。
※ユーザー名はローマ字(半角英小文字・数字)にすること。GCE では、公開鍵の末尾に付くこのコメントがログインユーザー名として使われ、存在しないユーザーなら VM 上に自動で作成されます。コンソールの SSH ボタンで入ったときのユーザー名と同じにすれば、同じホームディレクトリを使えます。
作成されると秘密鍵 gce_key と公開鍵 gce_key.pub の 2 つができます。サーバーに登録するのは .pub の方だけです。
cat ~/.ssh/gce_key.pub
# ssh-ed25519 AAAAC3Nza...(長い文字列)... ユーザー名
サーバー(GCP)の作業: 公開鍵を登録する
方法 A: VM インスタンス単位で登録
- Google Cloud コンソールで「Compute Engine」→「VM インスタンス」を開く
- 対象のインスタンス名をクリックし、「編集」を押す
- 「SSH 認証鍵」(セキュリティとアクセス)の項目で「項目を追加」を押す
- 先ほど表示した公開鍵の内容を1 行まるごと貼り付けて保存する
方法 B: プロジェクト全体で登録
「Compute Engine」→「メタデータ」→「SSH 認証鍵」に登録すると、プロジェクト内の全 VM(プロジェクト全体の鍵をブロックしていないもの)で使えます。
方法 C: VM 内で authorized_keys に追記
コンソールの SSH ボタンでサーバーへ入り、~/.ssh/authorized_keys に公開鍵を追記する方法もあります。ただし、GCE のゲスト環境がメタデータの鍵を管理しているため、メタデータ経由の登録のほうが確実です。
画面の名称はコンソールの更新で変わることがあります(2026 年時点の表記)。
ローカルから接続する
外部 IP はインスタンス一覧の「外部 IP」列で確認できます。まずはコマンドで直接接続してみます。
ssh -i ~/.ssh/gce_key ユーザー名@外部IP
毎回入力するのが面倒なら、~/.ssh/config に以下の記述を追加します。
Host 適当なホスト名
HostName GCPのインスタンス選択画面で表示される外部IP
User 鍵作成時に指定したユーザー名
Port 22
IdentityFile ~/.ssh/gce_key
IdentityFile の部分は、鍵の作成時に指定したファイル名に合わせます。続けて以下のコマンドを実行して接続します。
ssh 上記で指定した適当なホスト名
gcloud コマンドで接続する場合
gcloud compute ssh インスタンス名 --zone=asia-northeast1-b
初回実行時に鍵(~/.ssh/google_compute_engine)が自動で作成・登録されます。ユーザー名はローカルのユーザー名が使われます。
つながらないときのチェックポイント
| 症状 | 確認すること |
|---|---|
| Permission denied (publickey) | ユーザー名が鍵のコメントと一致しているか、IdentityFile の指定、OS Login が有効になっていないか |
| Connection timed out | VPC のファイアウォールルールで TCP 22 番が許可されているか、外部 IP が付いているか、VM が起動しているか |
| 以前は入れたのに急に入れない | VM の停止・起動で外部 IP(エフェメラル)が変わった。固定したい場合は静的 IP を予約する |
| UNPROTECTED PRIVATE KEY FILE | 秘密鍵の権限が緩い。chmod 600 ~/.ssh/gce_key |
OS Login(メタデータ enable-oslogin=TRUE)が有効なプロジェクトでは、メタデータの SSH 鍵は無視され、Google アカウントの IAM 権限で認証します。組織のポリシーで有効化されていることもあるので、鍵を登録しても入れないときは確認してください。
セキュリティ上の注意
- 秘密鍵は他人に渡さない・リポジトリにコミットしない
- ファイアウォールの送信元を
0.0.0.0/0(全開放)ではなく、自宅や会社の IP に絞るとより安全 - 使わなくなった鍵はメタデータから削除する
関連
- 【GCP/GCE】SSHでPermission denied (publickey).
- Linux/Mac → Linux サーバ SSH 鍵認証完全ガイド(ssh-keygen / ssh-copy-id / config)
- SSH 完全ガイド — 認証/鍵/config/トンネル/ポートフォワード
- SSH よくあるエラー集と対処完全ガイド
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスのソフト一覧|Blender・Metasequoiaと用途別の選び方
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Visual Studio「デザイナーを表示できません」エラーの原因と対処 2026-10-28 12:06:00
- SSH 認証に失敗しました。再試行してください の対処 2026-10-28 12:06:00
- SSH2 秘密鍵の読み込みに失敗しました の原因と対処 2026-10-28 12:06:00
- TeraTerm のよくあるエラーと対処法完全ガイド — Connection refused / 2026-10-28 12:06:00
- Visual Studio エラー一覧|コンパイルエラー・警告の確認方法と対処 2026-10-28 11:39:57
- Whitelabel Error Page の原因と消し方|Spring Boot のエラーページ 2026-10-28 11:39:57
- Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法 2026-10-28 11:39:57
- SQL WHERE 句完全ガイド 2026-10-28 11:39:57
- SQL JOIN 完全ガイド (INNER/LEFT/RIGHT/FULL OUTER) 2026-10-28 11:39:57
- tomcat の起動 / 停止ログと catalina.log・catalina.out の違い 2026-10-28 10:24:23
- Tomcat の起動確認方法 5 つ|localhost:8080・ポート・プロセス・ログ 2026-10-28 10:24:23
- Oracle 19c COMMITの使い方: 暗黙コミット・自動確定・応答不明時の確認 2026-10-28 09:59:09
- Oracle 19c DELETE文|削除対象の確認・COMMIT前の判断・ROLLBACKの条件 2026-10-28 09:59:09
- Oracle 19c INSERT文|INSERT ALL・SELECT・RETURNINGとMERGEの使い分け 2026-10-28 09:59:09
- Oracle 19cのトランザクション制御|COMMIT・ROLLBACK・分離レベルと接続設定 2026-10-28 09:59:09