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 コンソールで、ナビゲーション・メニュー アイコン インフラストラクチャー
コンピュート > SSH 鍵 を開いて、SSH 鍵を管理することができます。 ここから、鍵を作成、名前変更、または削除できます。 鍵の作成を選択する場合、その鍵は RSA SSH 鍵タイプでなければなりません。 ED25519 SSH キー タイプをアップロードすることはできますが、VPC 内で生成することはできません。
コンソールでRSAキー・ペアを生成できる。 既存のRSAおよびED25519 SSH鍵をアップロードできる。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。
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"
- RSA SSH 鍵タイプの場合は、
- 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キーを探す
- IBM Cloudコンソールで、ナビゲーションメニューアイコン
インフラストラクチャー
コンピュート > SSHキーに進みます。
- 既存の 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鍵をアップロードする必要があります。
- IBM Cloudコンソールで、ナビゲーションメニューアイコン
インフラストラクチャー
コンピュート > SSHキーに進みます。
- **「作成」**をクリックして、表 1 にある情報を入力します。
| フィールド | 値 |
|---|---|
| ロケーション | ロケーションは、リージョン (特定の地理的エリア) とゾーン (リージョン内のフォールト・トレラント・データ・センター) で構成されます。 SSHキーを作成する場所を選択してください。 |
| 名前 | SSHキーには名前が必要です。 |
| リソース・グループ | SSHキーのリソースグループを選択してください。 |
| タグ | SSH鍵にユーザー・タグを割り当てることで、SSH鍵のリストを簡単にフィルタリングできる。 詳しくは、『タグの処理』を参照してください。 |
| アクセス管理タグ | アクセス管理タグを使用すると、特定のリソースに柔軟なアクセス・ポリシーを適用できます。 詳しくは、タグを使ってリソースへのアクセスを制御する UIチュートリアルをご覧ください。 |
| SSH 鍵タイプ | デフォルト値は rsaです。 コンソールで新しいRSAキー・ペアを生成できる。 既存のRSAおよびED25519 SSH鍵をアップロードできる。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。 |
- 「 キーペアを自動生成する 」を選択します。
- オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。
- 「作成」 をクリックします。
これで、UI 上の SSH 鍵のリストに SSH 鍵が表示されます。
コンソールでSSHキーをインポートする
SSHキーのインポートには、2つの方法があります。 ローカル・ファイルから公開鍵をアップロードできます。 または、公開鍵を UI に貼り付けることもできます。
ローカル・ファイルから SSH 鍵をインポートするには、以下の手順を使用します。
- IBM Cloudコンソールで、ナビゲーションメニューアイコン
インフラストラクチャー
コンピュート > SSHキーに進みます。
- **「作成」**をクリックして、表 1 にある情報を入力します。
Field Value ロケーション ロケーションは、リージョン(特定の地理的エリア)とゾーン(リージョン内の耐障害性データセンター)で構成されています。 SSHキーを作成する場所を選択してください。 名前 SSH 鍵には名前が必要です... リソースグループ SSH キーに使用するリソースグループを選択してください。 タグ SSH 鍵のリストを簡単にフィルタリングできるように、SSH 鍵にユーザー・タグを割り当てることができます。 詳しくは、「 タグの処理 」を参照してください。... アクセス管理タグ アクセス管理タグを使用すると、特定のリソースに対して柔軟なアクセスポリシーを適用できます。 詳しくは、UI チュートリアル「 タグを使用したリソースへのアクセスの制御 」を参照してください。...
- 「 既存の公開鍵を使用する 」を選択します。
- 「 公開鍵をアップロード 」をクリックします。
- 公開鍵ファイルを選択し、「 開く 」をクリックします。 通常、ファイル拡張子
.pubは、どのファイルに公開鍵が含まれているかを示します。 - オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。
- 「作成」 をクリックします。
公開鍵素材を UI に貼り付けることによって SSH 鍵をインポートするには、以下の手順を使用します。
ターミナルからSSHキーをコピーしてVPCにキーを追加する場合、余分な改行が混入し、それが解析エラーの原因となることがあります。 この問題を防止するために、まずは、SSH 鍵をテキスト・エディターに貼り付けて余分な改行を削除してください。 それから、SSH 鍵をテキスト・エディターからコピーして VPC の UI、CLI、または API に貼り付けてください。
これで、インポートした SSH 鍵が UI 上の SSH 鍵のリストに表示されます。
CLI を使用した SSH 鍵のインポート
CLI を使用して SSH 鍵をインポートするには、 ibmcloud is key-create コマンドを使用します。 また、KEY_NAME と KEY を指定する必要があります。 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 鍵のトラブルシューティング