GCPのCompute EngineにSSH接続する方法です。AWSのEC2インスタンスにSSH接続するよりも、複雑でした。
前提条件
・WSLやcygwinにより、Linux環境を使うことができる
・gcloudがインストールされている。
SSH認証鍵の作成
Linuxであれば以下のコマンドを用いることでSSHの公開鍵・秘密鍵のペアを作成することができる。作成する場所はローカルのPCでも、GCEインスタンス上でもどちらでもよい。
$ ssh-keygen -t rsa -f ~/.ssh/your-key-name -C your-name
Enter passphrase (empty for no passphrase): #Input passphrase
Enter same passphrase again: #Input passphrase again
~/.sshフォルダ内にyour-key-name(秘密鍵)とyour-key-name.pub(公開鍵)が作成される
OS ログイン機能の有効化
GCPのメタデータページ(こちらを参照)に移動する
画像のようにメタデータが存在していない場合は「メタデータを追加」をクリックし、
キー「enable-oslogin」の値を「True」として入力、保存する。保存後は以下のように表示される。
OSログインが有効化された。
作成した公開鍵を自分のアカウントに追加する
os-loginを有効化したことにより、作成した公開鍵を自分のアカウントに追加することができる。ローカルPCで以下のコマンドを入力すると追加される。
$ gcloud compute os-login ssh-keys add --key-file ~\.ssh\your-key-name.pub
以上でローカルPCから、GCEにSSH接続する準備が整った。
# 認証情報の確認
接続を行う前に認証情報を確認するために、以下のコマンドを入力する
$ gcloud compute os-login describe-profile
「username」がSSH接続の再使用するユーザー名
SSH接続を行う
以下のコマンドを入力する
$ ssh -i ~\.ssh\your-key-name username@your-ip-host
Enter passphrase for key 'C:\Users\user\.ssh\your-key-name':
$ ssh -i ~\.ssh\your-key-name username@your-ip-host
Enter passphrase for key 'C:\Users\user\.ssh\your-key-name':
Linux api-server 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
接続完了!!
# 終わりに
~/.sshフォルダ内に「config」という名前のファイルを作成し、接続する際の必要情報を記入しておくことで、ipアドレスや秘密鍵のパスといった情報をいちいち入力しないでよくなるため楽になる。
例:
Host hogehoge
HostName your-ip-address
User your-username
IdentityFile ~/.ssh/your-key-name
と、configファイルに追記した場合、
$ ssh hogehoge
で接続が可能になる。