[秘密鍵/公開鍵]GCPにSSHで接続する方法

【秘密鍵:公開鍵】GCPにSSHで接続する方法

こんばんは、エンジニアの眠れない夜です。

GCPにSSHで接続する方法をSSH接続に慣れていない方向けに説明します。

GCPにSSHで接続するまでの全体像

  1. ローカルPCで秘密鍵/公開鍵を作成します。
  2. GCPのインスタンスにローカルの公開鍵を登録します。
  3. ローカルPCからGCPインスタンスに秘密鍵を使って接続します。

イメージとしては勘合貿易です。

【図解】GCPにSSHで接続する方法0

  1. 秘密鍵と公開鍵を作成
  2. 相手に公開鍵(右側)を渡す
  3. アクセスするときは秘密鍵(左側)を持って一致するか確認

これで秘密鍵/公開鍵の仕組みは二度と忘れませんね!

ローカルPCで秘密鍵/公開鍵を作成します。

まずは自分のPCのターミナルで下記のコードを実行して秘密鍵/公開鍵を作成します。
ssh-keygen -o -t rsa -C "user_name" -b 4096

user_nameは適宜置き換えてください。

3回入力を求められます。(SSHを作成するのが初めてで面倒な人はEnter3回押せばOKです。)

  • 1回目は保存場所(ファイル名)
  • 2回目と3回目はパスワード

1回目の質問の後に既に秘密鍵/公開鍵を作成している人は上書きしていいか聞かれるので no を選択してください。

消してもいい場合は yes でもいいですが、既にどこかでこの鍵を使用していると使えなくなるので注意が必要です。

1回目の質問時にファイル名を変更すれば新規で秘密鍵/公開鍵を作成できます。

2回目と3回目は質問は接続するたびに毎回パスワードを聞かれるのが面倒なので、パスワードを入力せずにそのままエンターを押します。もちろんパスワードを入力してもOKです。その方が安全です。

こんなのが表示されれば鍵の作成は成功です!

+---[RSA 4096]----+
| o++BB|
| =o *+|
| . .+ +|
| . o *o o=..|
| ..o+
..*==.|
+----[SHA256]-----+

 

続いて、下記のコードを実行すると公開鍵を表示できます。
cat ~/.ssh/id_rsa.pub

こんな感じで表示されます。初めから最後までコピをします。
ssh-rsa AAAAB3NzaC 〜省略〜 1fQQ== user_name

次のステップで貼り付けるのでそれまで他のものをコピーしないように気をつけてください。

GCPのインスタンスにローカルの公開鍵を登録します。

GCPのインスタンス一覧から接続したいインスタンスを開きます。

そして、「編集」を押すと下の方に「SSHキーがN個あります」という表示があるのでその下の、「表示して編集する」をクリックします。

【図解】GCPにSSHで接続する方法

すると画面が開くのでそこに先ほどコピーした公開鍵を貼り付けます。

【図解】GCPにSSHで接続する方法2

テキストボックスの左にユーザー名が表示されるのが確認できたら画面を下までスクロールして「保存」します。

ローカルPCからGCPインスタンスに秘密鍵を使って接続します。

最後にローカルからインスタンスに接続ができれば完了ですね!

ローカルのPCのターミナルを開いて

ssh user_name@インスタンス外部IPアドレス -i 秘密鍵のパス

を入力すればOKです。インスタンスの外部IPアドレスはインスタンス一覧から確認できます。

入力例はこんな感じです。環境にもよりますが、user_nameと外部IPアドレスを置き換えればそのまま利用できます。

ssh user_name@35.221.121.130 -i ~/.ssh/id_rsa

これで無事にGCPのインスタンスにSSH接続ができましたね^^

おまけ

接続する時に毎回上記の情報を引っ張ってきて入力するのは面倒なのでconfigファイルに設定内容を保存します。

下記のコマンドを実行してconfigファイルを編集します。

vim ~/.ssh/config

入力する内容は下記の通りです。

Host 任意の接続名
HostName ホスト名(ドメイン or IP)
User ユーザー名
Port ポート番号
IdentityFile 鍵へのPATH(例えば~/.ssh/hoge.key)

先程接続に使った情報を元にした入力例だとこの様になります。

config

StrictHostKeyChecking no

Host server_name
HostName 35.221.121.130
User user_name
Port 22
IdentityFile ~/.ssh/id_rsa

1行目は初回SSH接続時に確認されないようにするための設定です。

Hostをserver_nameと書きましたがここは好みで変更してください。

さて、SSHで接続してみましょう。入力する内容は

ssh Host だけで接続できます。Hostはserver_nameと設定したので

ssh server_name

たったこれだけで次からサーバーに接続できるようになりました!便利ですね(^^)♪

1 Comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.