Google Compute Engine は接続するだけなら、ブラウザで十分ですし、ポート変更やらある程度対策してれば問題ないと考えていますが、現在の選択の中では最も強固と言われている Ed25519 で接続したいと思いかきかきしてます。
はじめに
2023年6月現在の Google Compute Engine では、
- ブラウザからアクセスすると、ECDSA 鍵が自動生成
- gcloud CLI からアクセスすると、RSA 鍵が自動生成
されるようになっています。
また、ブラウザの「指定された秘密 SSH 鍵を使用してブラウザ ウィンドウを開く」では、ECDSA か RSA しか選択できないあたり、公式には Ed25519 を対応する気も無さげに見えます。
こんな感じなので、Ed25519 でアクセスしたいなら、外部のSSHクライアントからじゃないとアクセスできないようです。
必要なもの
- gloud CLI(VMにアクセスする時に必要になります)
- 外部のSSHクライアント(TeraTerm など)
手順
- 手順に従って、gcloud CLI をインストールを行う
- クライアントにて
gcloud compute config-ssh
を実行する(ログインして実行してください)
-
ssh-keygen -t ed25519 -f gce_ed25519 -C <ユーザー名>
をクライアントで実行して Ed25519 鍵を作成する(ファイル名は変更OK)
-
.ssh
フォルダに生成された公開鍵(gce_ed25519.pub)の中身のテキストをコピー - Google Cloud Console から VM の編集ページを開き、SSH 認証鍵に貼り付け
-
.ssh
フォルダにconfig
ファイルが生成されているので、中身を確認する - 外部のSSHクライアントで
ssh <ユーザー名>@<ホスト>
を実行して、VMへアクセスする
さいごに
あとは、ポート変更とファイアウォールの設定変更でもしてセキュリティを高めましょう。また、お使いの回線が IPoE であれば、SSH できる IPv4 を制限するとより良いかと。
なお、ネットワーク インターフェース の 外部 IPv4 アドレス を エフェメラル にしている場合、ホスト名が定期的に変わります。
ホスト名の変更があると、ホスト名の解決ができなくなり、外部のSSHクライアントから接続できなくなってしまいます。gcloud compute config-ssh
を実行して、configファイルを再生成してあげてください。