GCEにTeraTermからSSH接続する例 ついでにWinSCPも

Google Cloud
スポンサーリンク

GCP(Google Cloud Pratform)上での仮想マシン構築に慣れていないうちは、自分のPCからSSH接続するだけでもハマりそうです。その大きな理由は、SSH用の認証鍵を設定する必要があるからです。

この記事では、GCP初心者かつWindowsを使い慣れている方向けに、TeraTermでGCE(Google Compute Engine)にSSH接続したり、WinSCPで接続する手順を紹介します。

前提

本記事の手順は、以下の条件を前提としています。

前提条件
  • 接続先VMインスタンスのOSは「CentOS Stream 8」(GCEのインスタンス作成時に公開イメージから作成)
  • 2022年4月時点の環境で検証
  • SSHのポート番号はデフォルトの22番を使用
    • セキュリティ上変更が望ましいが、説明をシンプルにするため
  • VMインスタンスの設定はデフォルトのまま
    • ファイアウォール(ネットワークタグ)の設定は特に変更しない
  • OS(CentOS)の設定はデフォルトのまま
    • ファイアウォールの設定はデフォルトのまま
    • SELinuxの無効化はしない(デフォルトのまま)
  • TeraTermのバージョンは「4.106」(ポータブル版)を使用
  • WinSCPのバージョンは「5.19.6」を使用

準備

SSH認証鍵の生成

まずはSSH通信に必要な認証鍵を生成します。

VMインスタンス(Linux)上でも「ssh-keygen」コマンドで生成できますが、ここではTeraTermのGUIで作ります。

TeraTermでのSSH認証鍵生成手順
  • step1
    「SSH鍵生成」画面を開く

    TeraTermを起動し、メニューから[設定]>[SSH鍵生成]を選択します。

  • step2
    鍵の生成

    デフォルトのまま「生成」ボタンを押します。

    デフォルトの通り、鍵の種類は「RSA」、ビット数は「2048」、「bcrypt KDF形式」はON、ラウンド数は「16」とします。

  • step3
    SSH認証鍵ファイルの保存

    下図の通り必要項目を入力し、「公開鍵の保存」「秘密鍵の保存」ボタンからそれぞれSSH認証鍵ファイルをローカルの任意フォルダに保存します。

    パスフレーズは、OS上のパスワードとは異なってもOKです。「コメント」には、SSH接続する際のOSユーザー名(root以外)を入力します。(例えばユーザー名が「account1@example.com」の場合「account1」でOKのようです)

  • step4
    保存したファイルを確認

    任意のフォルダに2つのファイルが保存されたことを確認します。

    TeraTermのデフォルトでは、秘密鍵が「id_rsa」、公開鍵が「id_rsa.pub」というファイル名になります。

VMインスタンス側の設定

前項で生成したSSH認証鍵を、GCPのVMインスタンスに設定します。

VMインスタンスへのSSH認証鍵設定
  • step1
    VMインスタンスの編集画面を開く

    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接続してみます。

TeraTermからGCEへのSSH接続手順
  • step1
    外部IPアドレスを入力

    TeraTermを起動し、新しい接続画面を開きます。「ホスト」欄に、前項で確認したVMインスタンスの外部IPアドレスを入力し、「OK」ボタンを押します。

    SSHのポート番号については、この例ではデフォルトの22番を使っていますが、変更している場合はそのポート番号を入力します。

    この後「セキュリティ警告」の画面が表示された場合は「続行」をクリックします。

  • step2
    認証情報、認証鍵ファイルを指定

    認証情報が求められるので、下のように指定し「OK」ボタンを押します。

    ユーザー名には、SSH鍵生成に「コメント」欄に入力したユーザー名、パスフレーズには同じくSSH鍵生成時に入力したパスフレーズを入力します。

    認証方式は「RDA/DSA/ECDSA/ED25519鍵を使う」を選択し、「秘密鍵」として前項で生成した秘密鍵(id_rsa)のファイルを指定します(公開鍵と間違えないよう注意)。

  • step3
    SSH接続成功を確認

    設定や認証情報の指定に問題が無ければ、SSH接続が成功します。

WinSCPからの接続

TeraTermで接続出来たら、WinSCPからも接続が出来るはずです。下記の手順で接続します。

WinSCPからGCEへの接続手順
  • step1
    外部IPアドレス・ユーザー名の入力

    WinSCPを起動し、「新しいセッション」を開き、下のように入力して「設定」ボタンを押します。

    「ホスト名」欄に、前項で確認したVMインスタンスの外部IPアドレスを入します。「ユーザー名」欄には、SSH鍵生成に「コメント」欄に入力したユーザー名を入力します。「パスワード」欄は指定しても良いですが、あとで別ダイアログで聞かれるので空欄とします。

    ポート番号については、TeraTermでのSSH接続時と同様に、変更している場合はそのポート番号を入力します。

  • step2
    SSH認証鍵ファイルを指定

    設定画面では[SSH]>[認証]から、「秘密鍵」に公開鍵のファイルを指定します。

    今回の例ではTeraTermでSSH認証鍵(id_rsa)を生成しました。WinSCPで求められる形式とは異なりますが、そのまま指定します。

  • step3
    秘密鍵のファイル変換

    TeraTermで生成した秘密鍵を指定した場合、下の確認画面が表示されます。「OK」を選択します。

  • step4
    秘密鍵のパスフレーズを入力

    下の画面で、秘密鍵のパスフレーズを求められます。SSH鍵生成時に入力したパスフレーズを入力します。

    このあと、変換後のファイル(id_rsa.ppk)の保存場所を聞かれますので、任意のフォルダに保存します。

  • step5
    設定を確定しログイン実行

    秘密鍵には、前項で変換した.ppkファイルが指定されていることを確認し、設定画面は「OK」で確定します。そして元の画面で「ログイン」を実行します。

  • step6
    ホスト鍵のキャッシュ追加

    下のような画面が表示された場合は「はい」を選択します。

  • step7
    秘密鍵のパスフレーズの入力

    秘密鍵のパスフレーズを求められます。SSH鍵生成時に入力したパスフレーズを入力します。

  • step8
    接続の成功を確認

    設定や認証情報の指定に問題が無ければ、SCP接続が成功します。

参考サイト

おわりに

今回の記事は以上です。ご質問やご意見等ありましたら、下のコメント欄やtwitterからお願いします。

最後に少しだけ宣伝をさせて下さい。IT製品の比較サイト「ITトレンド」では現在、IT製品のレビューを投稿することでAmazonギフト券1,000円分が貰えるサービスを行っています。金額はIT製品ごとに異なりますが、1,000円が多いようです。また、抽選ではなくレビューごとに必ず貰えます。

レビュー投稿は1製品あたり5分程度で、氏名や会社名などの入力が必要ですが、レビューは匿名で公開することが可能です。レビュー対象製品は多く、「Microsoft 365」や「ウイルスバスター」、「SKYSEA」など、あなたがお使いの製品もあると思います。

数分の労力でギフト券が貰えますし、企業にとっても製品改善に役立つ情報が得られますので、Win-Winの企画だと思います。終了時期は不明ですが、今のうちに投稿してみてはいかがでしょうか。

もとだて
もとだて

最後まで読んでいただき、ありがとうございました。

フィードバック

コメント

タイトルとURLをコピーしました