SSH 認証鍵を作成する


このドキュメントでは、Compute Engine 仮想マシン(VM)インスタンスの SSH 認証鍵ペアを作成する方法について説明します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

SSH 認証鍵ペアを作成する

Google Cloud コンソールまたは Google Cloud CLI を使用して VM に接続すると、Compute Engine によって SSH 認証鍵が自動的に作成されます。Compute Engine による鍵の構成と保存の詳細については、SSH 接続についてをご覧ください。

サードパーティ ツールまたは OpenSSH を使用して VM に接続する場合は、接続する前に VM に鍵を追加する必要があります。SSH 認証鍵がない場合は、SSH 認証鍵を作成する必要があります。VM は、sshd_config ファイルにある鍵形式を受け入れます。

Linux / macOS

Linux ワークステーションまたは macOS ワークステーションで、ssh-keygen ユーティリティを使用して新しい SSH 認証鍵ペアを作成します。次の例では、RSA 鍵ペアを作成します。

ターミナルを開き、ssh-keygen コマンドに -C フラグを指定して実行し、新しい SSH 認証鍵ペアを作成します。

ssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME -b 2048

次のように置き換えます。

  • KEY_FILENAME: SSH 認証鍵ファイルの名前。

    たとえば、my-ssh-key というファイル名を指定した場合、my-ssh-key という名前の秘密鍵ファイルと my-ssh-key.pub という名前の公開鍵ファイルが生成されます。

  • USERNAME: VM 上のユーザー名。たとえば、cloudysanfrancisco や、cloudysanfrancisco_gmail_com です。

    Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、USERNAMEroot にすることはできません。詳細については、root ユーザーとして VM に接続するをご覧ください。

    Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを DOMAIN\ 形式で追加する必要があります。たとえば、ad.example.com AD 内のユーザー cloudysanfrancisco には example\cloudysanfranciscoUSERNAME があります。

ssh-keygen は秘密鍵ファイルを ~/.ssh/KEY_FILENAME に、公開鍵ファイルを ~/.ssh/KEY_FILENAME.pub に保存します。

ユーザー cloudysanfrancisco の公開鍵は次のようになります。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco

Windows 10 以降

Windows バージョン 10 以降のワークステーションでは、ssh-keygen ユーティリティを使用して新しい SSH 認証鍵ペアを作成します。次の例では、RSA 鍵ペアを作成します。

コマンド プロンプトを開いて、-C フラグを指定した ssh-keygen コマンドを使い、新しい SSH 認証鍵ペアを作成します。

ssh-keygen -t rsa -f C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME -C USERNAME -b 2048

次のように置き換えます。

  • WINDOWS_USER: Windows マシンでのユーザー名。

  • KEY_FILENAME: SSH 認証鍵ファイルの名前。

    たとえば、my-ssh-key というファイル名を指定した場合、my-ssh-key という名前の秘密鍵ファイルと my-ssh-key.pub という名前の公開鍵ファイルが生成されます。

  • USERNAME: VM 上のユーザー名。たとえば、cloudysanfrancisco や、cloudysanfrancisco_gmail_com です。

    Linux VM の場合、root ログインを許可するように VM を構成した場合を除き、USERNAMEroot にすることはできません。詳細については、root ユーザーとして VM に接続するをご覧ください。

    Active Directory(AD)を使用する Windows VM の場合、ユーザー名の前に AD ドメインを DOMAIN\ 形式で追加する必要があります。たとえば、ad.example.com AD 内のユーザー cloudysanfrancisco には example\cloudysanfranciscoUSERNAME があります。

ssh-keygen は秘密鍵ファイルを C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME に、公開鍵ファイルを C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME.pub に保存します。

ユーザー cloudysanfrancisco の公開鍵は次のようになります。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco

Windows 8 以前

Windows バージョン 8 以前のワークステーションでは、PuTTYgen ツールを使用して新しい SSH 認証鍵ペアを作成します。次の例では、RSA 鍵ペアを作成します。

  1. puttygen.exe をダウンロードします(まだダウンロードしていない場合)。

  2. PuTTYgen を開きます。

  3. [Parameters] で次のように指定します。

    • Type of key to generate: RSA
    • Number of bits in a generated key: 2048 以上
  4. [Generate] をクリックし、画面の指示に従います。

    ツールに公開鍵の値が表示されます。

  5. [Key comment] セクションで、自動的に入力されたテキストをユーザー名に置き換えます。たとえば、cloudysanfrancisco や、cloudysanfrancisco_gmail_com です。

    Linux VM の場合、[キーコメント] は、ルートログインを許可するように VM を構成しない限り、root にすることはできません。詳細については、root ユーザーとして VM に接続するをご覧ください。

    Active Directory(AD)を使用する Windows VM の場合、鍵コメントの前に AD ドメインを DOMAIN\ 形式で追加する必要があります。たとえば、ad.example.com AD 内のユーザー cloudysanfrancisco には example\cloudysanfrancisco鍵コメントがあります。

  6. (省略可)鍵をパスワードで保護するため、鍵のパスフレーズを入力します。

  7. [Save private key] をクリックして、秘密鍵の保存先を選択します。

    .ppk 拡張子のファイルに秘密鍵が書き込まれます。

  8. [Save public key] をクリックして、公開鍵の保存先を選択します。PuTTYgen ウィンドウを開いたままにします。

  9. [Public key for pasting into OpenSSH authorized_keys file] フィールドの値をコピーします。

  10. 公開鍵ファイルを開きます。公開鍵の形式は次のとおりです。

    ---- BEGIN SSH2 PUBLIC KEY ----
    Comment: "USERNAME"
    KEY_VALUE
    ---- END SSH2 PUBLIC KEY ----
    
  11. 公開鍵ファイルの内容全体を、[Public key for pasting into OpenSSH authorized_keys file] フィールドからコピーした値に置き換えて、公開鍵ファイルが次の形式と一致するようにします。

    KEY_VALUE USERNAME
    

ユーザー cloudysanfrancisco の公開鍵は次のようになります。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco

次のステップ