GCP(Google Cloud Pratform)上での仮想マシン構築に慣れていないうちは、自分のPCからSSH接続するだけでもハマりそうです。その大きな理由は、SSH用の認証鍵を設定する必要があるからです。
この記事では、GCP初心者かつWindowsを使い慣れている方向けに、TeraTermでGCE(Google Compute Engine)にSSH接続したり、WinSCPで接続する手順を紹介します。
前提
本記事の手順は、以下の条件を前提としています。
準備
SSH認証鍵の生成
まずはSSH通信に必要な認証鍵を生成します。
VMインスタンス(Linux)上でも「ssh-keygen」コマンドで生成できますが、ここではTeraTermのGUIで作ります。
- step1「SSH鍵生成」画面を開く
TeraTermを起動し、メニューから[設定]>[SSH鍵生成]を選択します。
- step2鍵の生成
デフォルトのまま「生成」ボタンを押します。
デフォルトの通り、鍵の種類は「RSA」、ビット数は「2048」、「bcrypt KDF形式」はON、ラウンド数は「16」とします。
- step3SSH認証鍵ファイルの保存
下図の通り必要項目を入力し、「公開鍵の保存」「秘密鍵の保存」ボタンからそれぞれSSH認証鍵ファイルをローカルの任意フォルダに保存します。
パスフレーズは、OS上のパスワードとは異なってもOKです。「コメント」には、SSH接続する際のOSユーザー名(root以外)を入力します。(例えばユーザー名が「account1@example.com」の場合「account1」でOKのようです)
- step4保存したファイルを確認
任意のフォルダに2つのファイルが保存されたことを確認します。
TeraTermのデフォルトでは、秘密鍵が「id_rsa」、公開鍵が「id_rsa.pub」というファイル名になります。
VMインスタンス側の設定
前項で生成したSSH認証鍵を、GCPのVMインスタンスに設定します。
- step1VMインスタンスの編集画面を開く
GCPのコンソール画面から、該当のインスタンスVMを開き「編集」をクリックします。
- step2項目の追加
インスタンスの編集画面を下にスクロールし、「SSH認証鍵」の項目で「項目を追加」をクリックします。
- step3公開鍵の内容をペースト
SSH認証鍵の入力欄に、前項で生成した公開鍵(id_rsa.pub)の内容をペーストします。
公開鍵の内容をコピーするには、公開鍵のファイル(id_rsa.pub)をメモ帳などで開き、中身のテキストを全て選択してコピーすればOKです。
- step4編集内容を保存
VMインスタンスの編集画面で「保存」ボタンをクリックし、変更を確定します。
外部IPアドレスの確認
GCPの外からVMインスタンスにSSH接続する前に、外部IPアドレスを確認しておきます。これはGCPのコンソール画面で、該当VMインスタンスの「外部IP」として下図のように表示されています。
(外部IPが「エフェメラル」の場合、VMインスタンスを起動する都度IPが変わるので注意)
TeraTermからのSSH接続
前項までで事前準備が整ったので、次の手順でTeraTermでSSH接続してみます。
- step1外部IPアドレスを入力
TeraTermを起動し、新しい接続画面を開きます。「ホスト」欄に、前項で確認したVMインスタンスの外部IPアドレスを入力し、「OK」ボタンを押します。
SSHのポート番号については、この例ではデフォルトの22番を使っていますが、変更している場合はそのポート番号を入力します。
この後「セキュリティ警告」の画面が表示された場合は「続行」をクリックします。
- step2認証情報、認証鍵ファイルを指定
認証情報が求められるので、下のように指定し「OK」ボタンを押します。
ユーザー名には、SSH鍵生成に「コメント」欄に入力したユーザー名、パスフレーズには同じくSSH鍵生成時に入力したパスフレーズを入力します。
認証方式は「RDA/DSA/ECDSA/ED25519鍵を使う」を選択し、「秘密鍵」として前項で生成した秘密鍵(id_rsa)のファイルを指定します(公開鍵と間違えないよう注意)。
- step3SSH接続成功を確認
設定や認証情報の指定に問題が無ければ、SSH接続が成功します。
WinSCPからの接続
TeraTermで接続出来たら、WinSCPからも接続が出来るはずです。下記の手順で接続します。
- step1外部IPアドレス・ユーザー名の入力
WinSCPを起動し、「新しいセッション」を開き、下のように入力して「設定」ボタンを押します。
「ホスト名」欄に、前項で確認したVMインスタンスの外部IPアドレスを入します。「ユーザー名」欄には、SSH鍵生成に「コメント」欄に入力したユーザー名を入力します。「パスワード」欄は指定しても良いですが、あとで別ダイアログで聞かれるので空欄とします。
ポート番号については、TeraTermでのSSH接続時と同様に、変更している場合はそのポート番号を入力します。
- step2SSH認証鍵ファイルを指定
設定画面では[SSH]>[認証]から、「秘密鍵」に公開鍵のファイルを指定します。
今回の例ではTeraTermでSSH認証鍵(id_rsa)を生成しました。WinSCPで求められる形式とは異なりますが、そのまま指定します。
- step3秘密鍵のファイル変換
TeraTermで生成した秘密鍵を指定した場合、下の確認画面が表示されます。「OK」を選択します。
- step4秘密鍵のパスフレーズを入力
下の画面で、秘密鍵のパスフレーズを求められます。SSH鍵生成時に入力したパスフレーズを入力します。
このあと、変換後のファイル(id_rsa.ppk)の保存場所を聞かれますので、任意のフォルダに保存します。
- step5設定を確定しログイン実行
秘密鍵には、前項で変換した.ppkファイルが指定されていることを確認し、設定画面は「OK」で確定します。そして元の画面で「ログイン」を実行します。
- step6ホスト鍵のキャッシュ追加
下のような画面が表示された場合は「はい」を選択します。
- step7秘密鍵のパスフレーズの入力
秘密鍵のパスフレーズを求められます。SSH鍵生成時に入力したパスフレーズを入力します。
- step8接続の成功を確認
設定や認証情報の指定に問題が無ければ、SCP接続が成功します。
参考サイト
おわりに
今回の記事は以上です。
当サイトでは、ITインフラ関連の知識やノウハウをメインに紹介しています。下の関連記事にも役立つ情報があるかもしれませんので、ぜひご覧下さい。
また、知識やノウハウを効率的に学ぶ方法として、Udemy の「ながらセミナー」もおすすめです。三日坊主にならず、普段の生活の中でスキルアップする方法です。これについては下の記事で紹介していますので、良ければご覧下さい。
最後まで読んでいただき、ありがとうございました。
フィードバック
あなたが抱えている疑問や悩みは解決できたでしょうか?当ブログではそれを最重視しています。今後もあなたの役に立つ情報を提供するために、ぜひ教えて下さい。
コメント