SSH 鍵入門

サーバーを作成する場合は、既存の SSH 鍵を選択するか、SSH 鍵を生成する必要があります。 SSH 鍵は、公開鍵暗号方式を使用してユーザーまたはデバイスを識別するためにサーバーによって使用されます。 SSH鍵は英数字の組み合わせで構成されており、割り当てられたユーザーまたはデバイスごとに一意のものとなります。 コンソールでSSHキーを作成できます。 IBM Cloud® のコンソール、CLI、およびAPIを使用して、SSHキーを追加、編集、または削除することができます。 サーバーにSSHキーを追加することで、パスワードの代わりに、対応するSSH秘密鍵を使用してサーバーにアクセスできるようになります。 SSH 鍵をサーバーに追加できるのは、最初にサーバーを作成するときのみです。 Linux® サーバーが作成された後、サーバーの ~/.ssh/ ディレクトリーで鍵を直接編集できます。

接続用のパスワード・オプションを使用したサーバーの作成はサポートされていません。 サーバーをプロビジョンするときに SSH 鍵を指定し、秘密鍵を使用してサーバーに接続する必要があります。

サポートされるSSH鍵タイプ:コンソールで RSA および ED25519

IBM Cloud® Virtual Private Cloud は、2 つの異なるタイプの SSH 公開鍵をサポートします。

  • RSA
  • ED25519

IBM Cloud VPCでは、RSA がデフォルトの SSH 鍵タイプです。 キータイプをED25519に変更することを選択できます。 ED25519 SSH鍵タイプは、より小さな鍵でRSA SSH鍵タイプと同レベルのセキュリティを提供できるため、わずかに高いパフォーマンス上の利点があります。 RSA と ED25519 SSH 鍵を組み合わせて、仮想サーバー・インスタンスとベアメタルサーバーを作成できます。

IBM Cloud コンソールで、ナビゲーション・メニュー アイコンメニュー・アイコン インフラストラクチャー VPC アイコン コンピュート > SSH 鍵 を開いて、SSH 鍵を管理することができます。 ここから、鍵を作成、名前変更、または削除できます。 鍵の作成を選択する場合、その鍵は RSA SSH 鍵タイプでなければなりません。 ED25519 SSH キー タイプをアップロードすることはできますが、VPC 内で生成することはできません。

コンソールでRSAキー・ペアを生成できる。 既存のRSAおよびED25519 SSH鍵をアップロードできる。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。

コンソールでRSAキー・ペアを生成できる。 既存のRSAおよびED25519 SSH鍵をアップロードできる。

SSHキーの種類:CLIでRSAとED25519を指定する

IBM Cloud® Virtual Private Cloud は、2 つの異なるタイプの SSH 公開鍵をサポートします。

  • RSA
  • ED25519

IBM Cloud VPCでは、RSA がデフォルトの SSH 鍵タイプです。 キータイプをED25519に変更することを選択できます。 ED25519 SSH鍵タイプは、より小さな鍵でRSA SSH鍵タイプと同レベルのセキュリティを提供できるため、わずかに高いパフォーマンス上の利点があります。 RSA と ED25519 SSH 鍵を組み合わせて、仮想サーバー・インスタンスとベアメタルサーバーを作成できます。

  • Windows イメージまたは VMware イメージの場合は、RSA SSH 鍵タイプを使用する必要があります。 ED25519 SSH 鍵タイプは、Windows または VMware イメージでは使用できません。
  • Linux イメージでは、ED25519 SSH 鍵タイプは、オペレーティングシステムの SSH サーバーがその鍵タイプをサポートしている場合のみ使用できます。

CLI では、 --key-type オプションを使用して、鍵のタイプを指定できます。 CLI 内で SSH 鍵を作成することはできません。インポートできるのは既存の SSH 鍵のみです。 デフォルトの --key-type は RSA です。 ED25519 SSH 鍵をインポートしようとして、ed25519 鍵タイプを指定しなかった場合、処理は失敗します。

--key-type ed25519

SSHキーの種類:RSAとED25519がAPIにある

IBM Cloud® Virtual Private Cloud は、2 つの異なるタイプの SSH 公開鍵をサポートします。

  • RSA
  • ED25519

IBM Cloud VPCでは、RSA がデフォルトの SSH 鍵タイプです。 キータイプをED25519に変更することを選択できます。 ED25519 SSH鍵タイプは、より小さな鍵でRSA SSH鍵タイプと同レベルのセキュリティを提供できるため、わずかに高いパフォーマンス上の利点があります。 RSA と ED25519 SSH 鍵を組み合わせて、仮想サーバー・インスタンスとベアメタルサーバーを作成できます。

  • Windows イメージまたは VMware イメージの場合は、RSA SSH 鍵タイプを使用する必要があります。 ED25519 SSH 鍵タイプは、Windows または VMware イメージでは使用できません。
  • Linux イメージでは、ED25519 SSH 鍵タイプは、オペレーティングシステムの SSH サーバーがその鍵タイプをサポートしている場合のみ使用できます。

API 内で SSH 鍵を作成することはできません。インポートできるのは既存の SSH 鍵のみです。 コンソール内で新しいRSA SSHキー・ペアを生成することができます。 SSH 鍵を作成するときに、その鍵の API コード・スニペットをコピーするオプションがあります。

API では、 type 変数を使用して、鍵のタイプを指定できます。 デフォルトの type は RSA です。 ED25519 SSH 鍵をインポートしようとして、ed25519 鍵タイプを指定しなかった場合、処理は失敗します。

"type":"ed25519"

SSHキーの種類:RSA と ED25519 です

IBM Cloud® Virtual Private Cloud は、2 つの異なるタイプの SSH 公開鍵をサポートします。

  • RSA
  • ED25519

IBM Cloud VPCでは、RSA がデフォルトの SSH 鍵タイプです。 キータイプをED25519に変更することを選択できます。 ED25519 SSH鍵タイプは、より小さな鍵でRSA SSH鍵タイプと同レベルのセキュリティを提供できるため、わずかに高いパフォーマンス上の利点があります。 RSA と ED25519 SSH 鍵を組み合わせて、仮想サーバー・インスタンスとベアメタルサーバーを作成できます。

  • Windows イメージまたは VMware イメージの場合は、RSA SSH 鍵タイプを使用する必要があります。 ED25519 SSH 鍵タイプは、Windows または VMware イメージでは使用できません。
  • Linux イメージでは、ED25519 SSH 鍵タイプは、オペレーティングシステムの SSH サーバーがその鍵タイプをサポートしている場合のみ使用できます。

Terraform 内で SSH 鍵を作成することはできません。インポートできるのは既存の SSH 鍵のみです。 コンソール内で新しいRSA SSHキー・ペアを生成することができます。

Terraform では、 type 変数を使用して、鍵のタイプを指定できます。 デフォルトの型は rsa です。 ED25519 SSH 鍵をインポートしようとして、ed25519 鍵タイプを指定しなかった場合、処理は失敗します。

type = "ed25519"

開始前に

「VPC の SSH 鍵」 ページで SSH 鍵を作成するときに、 IBM Cloud® Virtual Private Cloud で SSH 鍵を生成できます。 ただし、既存の SSH 鍵ファイルをインポートすることを選択する場合は、以下の制限に留意してください。

  • SSHキーは、RSAまたは ED25519 のいずれかのキータイプであり、キーサイズは2048ビットまたは4096ビットである必要があります。
  • お使いの Mac システムが(デフォルトで)3072 ビットの鍵サイズを生成する場合は、以下のいずれかのコマンドを実行して、生成された鍵がサポートされているサイズであることを確認してください。
    • RSA SSH 鍵タイプの場合は、 ssh-keygen -t rsa -b 4096 -C "user_ID" を発行します。
    • ED25519 SSH鍵タイプでは、次のようにします: ssh-keygen -t ed25519 -b 4096 -C "user_ID"
  • SSH 鍵は鍵ペアとして生成されます。1 つは公開鍵で、もう 1 つは秘密鍵です。 VPC に SSH 鍵をインポートするときに、公開鍵を選択します。 対応する秘密鍵はローカル・ワークステーションに残り、インポートされません。
  • ターミナルからSSHキーをコピーしてVPCに公開鍵を追加する際、余分な改行が混入し、それが解析エラーの原因となることがあります。 この問題を回避するには、まず公開鍵をテキストエディタに貼り付け、余分な改行をすべて削除してください。 次に、テキストエディタから公開鍵をコピーし、 IBM Cloud VPC のUI、CLI、またはAPIに貼り付けます。

既存の SSH 鍵の検索

既存の SSH 鍵ファイルをインポートすることを選択した場合は、公開鍵が含まれている id_rsa.pub または id_ed25519.pub という名前のファイルを探します。 そのファイルは、ホームディレクトリの下の .ssh ディレクトリ内にある可能性があります。例えば、 /Users/<USERNAME>/.ssh/id_rsa.pub などです。 RSA SSH鍵の公開鍵ファイルの内容は通常 ssh-rsa で始まり、ED25519 SSH鍵の公開鍵ファイルの内容は通常 ssh-ed25519 で始まる。 ファイルの拡張子 .pub は、どのファイルに公開鍵が含まれているかを示す。

外部SSH鍵の生成

IBM Cloud VPCの外部で SSH 鍵を生成する場合は、 ssh-keygen コマンドを実行し、プロンプトに従います。 たとえば、 Linux やMacシステムで、 ssh-keygen -t rsa -C "user_ID" というコマンドを実行することで、RSA SSH鍵を生成できます。

Enter キーを押して、ファイルのデフォルトの場所を受け入れます。 このコマンドにより 2 つのファイルが生成されます。 生成された公開鍵は <your key>.pub ファイルに含まれています。 Windows® では、 PuTTYgen を使用してSSH鍵を生成できます。

OpenSSH バージョン 7.8 以上を使用しており、Windows サーバーにアクセスする予定の場合は、以下のコマンドを使用して PEM 形式で鍵を生成します。 ssh-keygen -m PEM -t rsa -C "user_ID"

コンソールで既存のSSHキーを探す

  1. IBM Cloudコンソールで、ナビゲーションメニューアイコンメニューアイコン インフラストラクチャー VPCアイコン コンピュート > SSHキーに進みます。
  2. 既存の SSH 鍵があれば、それらが表示されます。

CLIから既存のSSH鍵をリストアップする

CLI を使用してすべての SSH 鍵のリストを表示するには、 ibmcloud is keys コマンドを使用します。 RESOURCE_GROUP_ID 変数または RESOURCE_GROUP_NAME 変数のいずれかを指定します。 すべてのリソース・グループをリストする場合は、 --all-resource-groups を指定します。

ibmcloud is keys [--all-resource-groups]

詳細については、VPC CLIリファレンスの ibmcloud is keys を参照してください。

既存のSSHキーをAPIでリストアップする

API を使用してすべての SSH 鍵をリストするには、 「すべての鍵のリスト(List all keys)」 を使用します。

curl -X GET "$vpc_api_endpoint/v1/keys?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token"

Terraform を使用した既存の SSH 鍵のリスト表示

Terraform を使用してすべての SSH 鍵をリストするには、 ibm_is_ssh_keysを使用します。

data "ibm_is_ssh_keys" keys {}

コンソールでSSHキーを作成する

SSHキーを作成するには、以下の手順に従ってください。 RSA SSH 鍵のみを作成できます。 ED25519 SSH鍵の場合は、SSH鍵をアップロードする必要があります。

  1. IBM Cloudコンソールで、ナビゲーションメニューアイコンメニューアイコン インフラストラクチャー VPCアイコン コンピュート > SSHキーに進みます。

  2. **「作成」**をクリックして、表 1 にある情報を入力します。

    VPC選択用SSHキーの作成
    フィールド
    ロケーション ロケーションは、リージョン (特定の地理的エリア) とゾーン (リージョン内のフォールト・トレラント・データ・センター) で構成されます。 SSHキーを作成する場所を選択してください。
    名前 SSHキーには名前を指定する必要があります。
    リソース・グループ SSHキーのリソースグループを選択してください。
    タグ SSH鍵にユーザー・タグを割り当てることで、SSH鍵のリストを簡単にフィルタリングできる。 詳しくは、『タグの処理』を参照してください。
    アクセス管理タグ アクセス管理タグを使用すると、特定のリソースに柔軟なアクセス・ポリシーを適用できます。 詳しくは、タグを使ってリソースへのアクセスを制御する UIチュートリアルをご覧ください。
    SSH 鍵タイプ デフォルト値は rsaです。 コンソールで新しいRSAキー・ペアを生成できる。 既存のRSAおよびED25519 SSH鍵をアップロードできる。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。
  3. キーペアを自動生成する 」を選択します。

  4. オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。

  5. 「作成」 をクリックします。

これで、UI 上の SSH 鍵のリストに SSH 鍵が表示されます。

コンソールでSSHキーをインポートする

SSHキーのインポートには、2つの方法があります。 ローカル・ファイルから公開鍵をアップロードできます。 または、公開鍵を UI に貼り付けることもできます。

ローカル・ファイルから SSH 鍵をインポートするには、以下の手順を使用します。

  1. IBM Cloudコンソールで、ナビゲーションメニューアイコンメニューアイコン インフラストラクチャー VPCアイコン コンピュート > SSHキーに進みます。

  2. [作成] をクリックし、表1に記載されている情報を入力してください。

    VPC選択用SSHキーの作成
    フィールド
    ロケーション ロケーションは、リージョン(特定の地理的エリア)とゾーン(リージョン内の耐障害性データセンター)で構成されています。 SSH キーを作成する場所を選択してください。
    名前 SSH 鍵には名前が必要です...
    リソースグループ SSH キーに使用するリソースグループを選択してください。
    タグ SSH 鍵のリストを簡単にフィルタリングできるように、SSH 鍵にユーザー・タグを割り当てることができます。 詳しくは、「 タグの処理 」を参照してください。...
    アクセス管理タグ アクセス管理タグを使用すると、特定のリソースに対して柔軟なアクセスポリシーを適用できます。 詳しくは、UI チュートリアル「 タグを使用したリソースへのアクセスの制御 」を参照してください。...
  3. 既存の公開鍵を使用する 」を選択します。

  4. 公開鍵をアップロード 」をクリックします。

  5. 公開鍵ファイルを選択し、「 開く 」をクリックします。 通常、ファイル拡張子 .pub は、どのファイルに公開鍵が含まれているかを示します。

  6. オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。

  7. 「作成」 をクリックします。

公開鍵素材を UI に貼り付けることによって SSH 鍵をインポートするには、以下の手順を使用します。

ターミナルからSSHキーをコピーしてVPCにキーを追加する場合、余分な改行が混入し、それが解析エラーの原因となることがあります。 この問題を防止するために、まずは、SSH 鍵をテキスト・エディターに貼り付けて余分な改行を削除してください。 それから、SSH 鍵をテキスト・エディターからコピーして VPC の UI、CLI、または API に貼り付けてください。

これで、インポートした SSH 鍵が UI 上の SSH 鍵のリストに表示されます。

CLI を使用した SSH 鍵のインポート

CLI を使用して SSH 鍵をインポートするには、 ibmcloud is key-create コマンドを使用します。 また、KEY_NAMEKEY を指定する必要があります。 SSH 鍵ファイルは、インポートする鍵タイプに応じて、 id_rsa.pub または id_ed25519.pub のいずれかになります。 オプションで、 RESOURCE_GROUP_ID 変数または RESOURCE_GROUP_NAME 変数のいずれかを使用してリソースを指定できます。 詳細については、VPC CLIリファレンスガイドの ibmcloud is key-create を参照してください。

ibmcloud is key-create KEY_NAME (KEY | @KEY_FILE) [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME]

API を使用した SSH 鍵のインポート

API を使用して SSH 鍵をインポートするには、 鍵の作成 を使用します。 API を使用して SSH 鍵を作成することはできません。 しかし、コンソールでSSHキーを作成し、UIから新しいSSHキーを含む必要なAPIコード・スニペットを生成することができる。 UIを使用する場合は、APIコード・スニペットを生成する前に、コンソールで作成したSSHキーを保存しておいてください。

name プロパティーには、SSH 鍵の名前を指定します。 public_key プロパティーには、公開鍵情報を入力します。 type プロパティーには、SSH 鍵タイプとして rsa または ed25519 のいずれかを指定します。

curl -X POST "$vpc_api_endpoint/v1/keys?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name":"my-key-1",
      "public_key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDDGe50Bxa5T5NDddrrtbx2Y4/VGbiCgXqnBsYToIUKoFSHTQl5IX3PasGnneKanhcLwWz5M5MoCRvhxTp66NKzIfAz7r+FX9rxgR+ZgcM253YAqOVeIpOU408simDZKriTlN8kYsXL7P34tsWuAJf4MgZtJAQxous/2byetpdCv8ddnT4X3ltOg9w+LqSCPYfNivqH00Eh7S1Ldz7I8aw5WOp5a+sQFP/RbwfpwHp+ny7DfeIOokcuI42tJkoBn7UsLTVpCSmXr2EDRlSWe/1M/iHNRBzaT3CK0+SwZWd2AEjePxSnWKNGIEUJDlUYp7hKhiQcgT5ZAnWU121oc5En",
      "type":"rsa"
    }'

Terraform を使用した SSH 鍵のインポート

ssh-key リソースを作成するか、ssh-key データ・ソースを参照して既存の ssh-key を使用します。 詳しくは、 ibm_is_ssh_keys にある Terraform の資料を参照してください。

ssh-key リソースを作成するか、ssh-key データ・ソースを参照して既存の ssh-key を使用します。 name プロパティーには、SSH 鍵の名前を指定します。 public_key プロパティーには、公開鍵情報を入力します。 type プロパティーには、SSH 鍵タイプとして rsa または ed25519 のいずれかを指定します。 デフォルト値はrsaです。 ed25519 SSH 鍵をインポートするには、 ed25519 を指定する必要があります。

resource "ibm_is_ssh_key" "example_sshkey" {
   name       = "example-sshkey"
   public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR"
   type = "rsa"
}

次のステップ

SSH 鍵を見つけるか生成した後で、サーバーの計画と作成を行います。

仮想サーバー

ベアメタル・サーバー

SSH 鍵のトラブルシューティング