ブラウザからの SSH

ブラウザからの SSH を使用すると、Google Cloud Platform Console 内から SSH を使用して Google Compute Engine 仮想マシン インスタンスに接続できます。この機能を使用するために、ウェブブラウザの拡張機能や追加のソフトウェアをインストールする必要はありません。ブラウザからの SSH は、インスタンスに接続する他の方法の代わりとなります。

Linux 仮想マシン インスタンスへの接続

Compute Engine は、ブラウザから Linux インスタンスに接続するたびに SSH 認証鍵を管理し、必要に応じて SSH 認証鍵ペアを作成して適用します。ブラウザからの接続に使用される SSH 鍵を管理することはできません。代わりに、ブラウザからの接続に対するユーザーのアクセスは、Identity and Access Management(IAM)役割で制御します。プロジェクトのメンバーと IAM 役割は、Google Cloud Platform Console の [IAM] ページで表示できます。

[IAM] ページに移動

ブラウザを使用して接続するには、Compute インスタンス管理者であるプロジェクト メンバーである必要があります。インスタンスをサービス アカウントとして実行する場合は、サービス アカウント アクターである必要もあります。ブラウザを使用して接続するためのアクセス権がない場合は、プロジェクト オーナーに自分をプロジェクトに追加してアクセス権を付与するよう依頼してください。

アクセス権が付与されたら、Cloud Platform Console のウェブブラウザから直接 Linux インスタンスに接続してください。

  1. Cloud Platform Console で、[VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動する

  2. 仮想マシン インスタンスのリストで、接続したいインスタンスの行にある、[SSH] ボタンをクリックします。

また、インスタンスへの SSH 接続は、その名前をクリックし、インスタンスの詳細ページから [SSH] をクリックして開くこともできます。

これで、端末を使用して Linux インスタンスでコマンドを実行することができます。終了したら、exit コマンドを使用してインスタンスから切断します。

サポートされる環境

ブラウザからの SSH では、以下をサポートしています。

  • ウェブブラウザ: Google Chrome、Firefox、Microsoft Edge の最新版、Microsoft Internet Explorer 11 以上、Safari 8 以上。プライベート ブラウズ モードの Safari はサポートされていません。
  • 仮想マシンの設定: すべての Linux 仮想マシンイメージを Google Cloud Platform でネイティブに使用できます。

報告されている問題

  • 起動レイテンシ: ブラウザからの SSH の使用時における現在の接続時間は、5~30 秒です。仮想マシン インスタンス上で実行される新しいバージョンの Google Daemon では、接続時間は約 5 秒です。それ以外の場合は、最大 30 秒の接続時間が予想されます。

  • 新しい仮想マシン インスタンスがすぐに利用できない: 新しいインスタンスでは、起動して SSH を確立できるようになるまでに一定の時間を要します。新しいインスタンスへの接続に失敗した場合は、数分後に再試行してください。

  • 断続的な切断: 現時点では、接続の存続時間に関する特定の SLA は提供されていません。ターミナル ウィンドウを長期間開いたままにする必要がある場合は、tmuxscreen などのターミナル マルチプレクサを使用してください。

  • 外部 IP アドレスのないインスタンスへの接続: 現時点では、ブラウザからの SSH を使用して、外部 IP アドレスを持たないインスタンスに接続することはできません。回避策として、この機能を使用して、フロントエンドを実行するインスタンスなど、外部 IP アドレスを持つプロジェクト内の別のインスタンスに SSH 接続することができます。その後、ssh -A INTERNAL_IP コマンドを使用して、その内部 IP アドレスによって目的のインスタンスにログインします。このコマンドは、最初のインスタンスにログインしてから約 2 分以内に実行する必要があります。それ以上経過すると、SSH 認証鍵の有効期限が切れ、転送された接続についてログイン認証情報が有効ではなくなります。

  • Ctrl+W キーでウィンドウを閉じる: Ctrl+W、Ctrl+F4、Ctrl+Tab、その他のブラウザのキーボード ショートカットとして機能するキーの組み合わせは、SSH クライアントからターゲット システムに渡されません。これらのショートカットまたはその他のショートカットを送信するには、ウィンドウの右上にあるキーボード アイコンをクリックします。Google Chrome ブラウザを使用する場合は、「SSH for Google Cloud Platform」拡張機能をインストールできます。この拡張機能によって、CTRL+W などのブラウザで一般に予約されているキーボード ショートカットに直接アクセスできるようになり、ブラウザからの SSH と Google Cloud Shell のコンソール エクスペリエンスが向上します。

「Unable to connect on port 22」(ポート 22 に接続できません)エラー メッセージへの対処

このエラーは、以下の条件で表示されることがあります。

  • インスタンスが起動中で、sshd がまだ実行されていない。 インスタンスの起動が完了したことを確認してから、再試行してください。

  • インスタンスで sshd が実行されていない。デフォルトでは、sshd は標準の Compute Engine イメージから作成されたインスタンスで実行されます。sshd を手動で無効にした場合、またはこのサービスを実行しないカスタム イメージを設定している場合、ブラウザからの SSH は機能しません。

  • sshd が接続先以外のポートでリスニングしている。デフォルトでは、ブラウザからの SSH は、ポート 22 上のインスタンスに接続します。カスタム ポート上で sshd を実行している場合には、SSH ボタンのプルダウン メニューにある [ブラウザ ウィンドウでカスタムポートを開く」を使用して、そのポートに接続できます。

  • ポート上の SSH アクセスを許可するファイアウォール ルールがない。 ポート 22 上の SSH アクセスは、すべての Compute Engine インスタンスでデフォルトで有効になっています。アクセスを無効にしている場合、ブラウザからの SSH は機能しません。22 以外のポートで sshd を実行する場合は、カスタムのファイアウォール ルールを使用してそのポートへのアクセスを有効にする必要があります。

  • SSH アクセスを許可するファイアウォール ルールが有効になっているが、Cloud Platform Console サービスからの接続を許可するように設定されていない。ブラウザベースの SSH セッションに対するソース IP アドレスは、Cloud Platform Console によって動的に割り当てられ、セッションごとに異なることがあります。この機能を動作させるには、任意の IP アドレスからの接続、または公開 SPF レコードを使用して取得できる Google の IP アドレス範囲からの接続を許可する必要があります。

  • インスタンスがシャットダウンされている。 インスタンスが起動して実行されていることを確認します。正常でないインスタンスのトラブルシューティングを行う方法については、このガイドをご覧ください。

「Could not connect, retrying...」(接続できませんでした。再試行しています)エラーへの対処

  • インスタンスで Google Daemon が実行されていない。Google Daemon は、すべての標準の Google Compute Engine イメージにインストールされて実行されています。ブラウザからの SSH では、カスタム イメージはサポートされていません。シリアル コンソール出力ページに移動し、accounts-from-metadata: 文字列が接頭辞として付いている出力行を見つけることで、デーモンが実行されていることを確認できます。標準のイメージを使用しているが、シリアル コンソール出力にこれらの出力接頭辞が表示されない場合は、デーモンが停止している可能性があります。デーモンを再起動するには、インスタンスを再起動します。

  • インスタンスのブートディスクの空き容量が不足している。 接続が確立されると、デーモンにより、現在のセッションに使用されている公開 SSH 認証鍵を使用して ~/.ssh/authorized_keys ファイルが更新されます。ディスクの空き容量が不足している場合、更新は失敗します。この状態を診断するには、インスタンスのシリアル コンソール出力をチェックし、「No space left」エラーを見つけます。以下に、このエラーを解決するために実行できるいくつかの方法を示します。

    • インスタンスの永続ディスクをサイズ変更して、そのサイズを増やします。インスタンスで使用されているオペレーティング システム イメージが自動サイズ変更をサポートしている場合は、この機能を使用すると、インスタンスの再起動後にオペレーティング システムによってルート パーティションのサイズが新しいサイズに合わせて自動的に変更されるため最も簡単です。
    • どのファイルがディスク容量を消費しているかわかっている場合は、不要なファイルを削除し、インスタンスを起動するための容量を確保する起動スクリプトを作成します。スクリプトが実行されてファイルが消去されるように、インスタンスを再起動します。正しいコマンドを使用して正しいファイルを削除するように注意してください。インスタンスが起動し、SSH 経由でインスタンスに接続できるようになった後、ファイルが削除され続けないように、startup-script メタデータ アイテムの設定を元に戻します。
    • インスタンスのディスクにアクセスする方法については、トラブルシューティング ガイドをご覧ください。
  • 接続ユーザーの $HOME または $HOME/.ssh ディレクトリに対する権限が不適切である。 Google Daemon では、接続ユーザーの $HOME/.ssh/authorized_keys ファイルに公開 SSH 認証鍵を保存できる必要があります。$HOME/.ssh ディレクトリには 0700 の Unix 権限がある必要があり、authorized_keys ファイルには 0600 の Unix 権限がある必要があり、その両方をユーザーが所有している必要があります。権限または所有権の設定が誤っていると、接続の問題が発生することがあります。トラブルシューティングを行うには、新しいユーザーとそのホーム ディレクトリが作成されるように、新しい名前にユーザー名を変更します。その後、新しいユーザーを使用して接続し、既存のユーザー ディレクトリの権限に関する問題を修正します。

コピー、貼り付け

ブラウザとプラットフォームでサポートされているキーボード ショートカット(Windows と Linux では Ctrl+C / Ctrl+V、Mac OS X では Cmd+C / Cmd+V)を使用し、テキストをコピーして貼り付けることができます。

スクロール

マウスホイールやトラックパッドを使用して、ターミナルをスクロールできます。また、Windows と Linux では Ctrl+Shift+PageUp / Ctrl+Shift+PageDn キーで、Mac OS X では Fn+Shift+Up / Fn+Shift+Down キーでターミナルをスクロールできます。

ログイン ユーザー名

デフォルトでは、SSH セッションのユーザー名は、アカウントにログインしているメールアドレスから、ドメイン情報を省略して、生成されます。たとえば、メールが jane.doe@gmail.com の場合、対応するユーザー名は jane_doe になります。

ユーザー名は、次の手順で SSH ウィンドウ内から変更できます。

  1. 仮想マシン インスタンスに接続します
  2. SSH ウィンドウの右上隅で、[設定] アイコン 設定アイコン をクリックします。
  3. [Linux ユーザー名を変更] を選択します。
# This will overwrite files in the target directory, so be careful.
$ sudo cp -r /home/jane_doe_gmail_com/. /home/jane_doe
$ sudo chown -R jane_doe:jane_doe /home/jane_doe

または、古いユーザー名に変更することもできます。そうするには上記の [Linux ユーザー名を変更] オプションを使用し、古いユーザー名(jane_doe_gmail_com など)を選択します。

外出先でもリソースをモニタリング

Google Cloud Console アプリを入手して、プロジェクトの管理にお役立てください。

フィードバックを送信...

Compute Engine ドキュメント