SSH 鍵の管理
IBM Cloud® Virtual Servers for Virtual Private Cloud インスタンスにアクセスするには、使用可能な SSH 鍵が必要です。 IBM Cloud コンソール、CLI、および API で SSH 鍵を作成、更新、および削除できます。
IBM Cloud コンソールまたは CLI を使用した鍵の管理は、既に作成済みのインスタンス内の鍵には無効です。 (既存の Linux インスタンスの場合、インスタンスの ~/.ssh/
ディレクトリー内で鍵を直接編集できます。)
IBM Cloud® Virtual Private Cloud は、2 つの異なるタイプの SSH 公開鍵をサポートします。
- RSA
- Ed25519
UI を使用して新しい RSA 鍵ペアを生成できます。 既存の RSA 鍵および Ed25519 SSH 鍵をアップロードできます。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519 は、Windows イメージや VMware イメージでは使用できません。
開始前に
仮想サーバー・インスタンスを作成するには、SSH 鍵を作成またはアップロードし、それを使用可能にして、プロビジョン後にインスタンスに接続できるようにする必要があります。
IBM Cloud コンソールを使用した SSH 鍵の管理
仮想サーバーをプロビジョンするときに、新しい SSH 鍵を作成したり、既存の SSH 鍵の使用可能なリストから選択したり、新しい SSH 鍵をアップロードしたりすることができます。
-
IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャー
コンピュート > SSH キーに進みます。 既存の SSH 鍵があれば、それらが表示されます。
-
「VPC の SSH 鍵」 タブで、SSH 鍵の「アクション」アイコン
をクリックし、使用可能なオプションから選択します。
SSHキーアクション Action Description 既存のSSH鍵を更新すると、鍵の名前はすぐに変更されます。 削除|SSH鍵を削除すると、インスタンスのプロビジョニング時や既存インスタンスのOSリロード時に使用できなくなります。 ただし、このキーは、そのキーを使って以前にプロビジョニングしたインスタンスではまだ使用可能で、ログインに使用できます。 お客様がご使用の特定のリソース・グループで使用できるリージョンのリストが表示されます。
CLI を使用した SSH 鍵の管理
CLI を使用して SSH 鍵を管理することもできます。
IBM Cloud CLI vpc-infrastructure
プラグインがインストールされていることを確認します。 詳しくは、IBM Cloud CLI for VPC を参照してください。
アクション | コマンド | 結果 |
---|---|---|
SSH 鍵を作成します。 | ibmcloud is key-create |
SSH 鍵を作成し終えると、その鍵が鍵のリストに追加されます。 |
鍵の詳細を表示します。 | ibmcloud is key |
鍵の名前と鍵の ID を表示できます。 |
キーをリストします。 | ibmcloud is keys |
既存の SSH 鍵をすべて表示できます。 |
更新キー。 | ibmcloud is key-update |
既存の鍵を更新し終えると、その鍵の名前が即時に変更されます。 |
鍵を削除します。 | ibmcloud is key-delete |
SSHキーを削除すると、インスタンスのプロビジョニング時や既存インスタンスのOSリロード時に使用できなくなります。 しかし、このキーは、以前にそのキーを使ってプロビジョニングしたインスタンスではまだ利用可能であり、ログインに使用することができる。 |
APIを使用したSSHキーの管理
また、APIを使ってSSHキーを管理することもできる。 以下の例の $vpc_api_endpoint
と $iam_token
変数の詳細については、『 Virtual Private Cloud API Introduction 』の「Authentication」および「Endpoint URLs」のセクションを参照してください。
Terraform を使用した SSH 鍵の管理
Terraformを使ってSSHキーを管理することもできる。 詳しくは、 ibm_is_ssh_keys を参照してください。
UI を使用したすべての SSH 鍵のリスト表示
すべての SSH 鍵をリストするには、以下の手順を実行します。
- IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャー
コンピュート > SSH キーに進みます。
- 既存の SSH 鍵があれば、それらが表示されます。
CLI を使用したすべての SSH 鍵のリスト表示
既存の SSH 鍵をすべて表示するには、 ibmcloud is keys コマンドを使用します。
使用可能なすべてのリソース・グループの SSH 鍵をリストするには、 --all-resource-groups
オプションを使用します。 オプションで、リストをフィルタリングして、特定のリソース・グループの SSH 鍵のみを含めることができます。 RESOURCE_GROUP_ID
変数または RESOURCE_GROUP_NAME
変数を使用して、リソース・グループを指定します。 詳しくは、
ibmcloud is keys を参照してください。
ibmcloud is keys [--all-resource-groups]
API を使用したすべての SSH 鍵のリスト表示
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 {}
UI を使用した SSH 鍵の詳細の表示
SSH 鍵に関する以下の詳細を表示できます。
- 名前
- リソース・グループ
- 指紋
- タイプ
- Length
- 作成日 (ローカル)
SSH 鍵の詳細を表示するには、以下のステップを実行します。
- IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャー
コンピュート > SSH キーに進みます。
- 「VPC の SSH 鍵」 ページに、既存のすべての SSH 鍵のリストが表示されます。
- 「アクション」 メニューから、SSH 鍵の 「名前変更」 または 「削除」 を行うことができます。
CLI を使用した SSH 鍵の詳細の表示
ibmcloud is key コマンドを使用すると、鍵の名前と鍵の ID を表示できます。 KEY
変数を使用して SSH 鍵の名前を指定します。 詳細については、VPC CLIリファレンスガイドの「ibmcloud is key」を参照してください。
ibmcloud is key KEY
API を使用した SSH 鍵の詳細の表示
API を使用して特定の鍵の情報を取得するには、 鍵の取得 を使用します。
$id
変数には、詳細を表示する対象の SSH 鍵の名前を指定します。
curl -X GET "$vpc_api_endpoint/v1/keys/$id?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token"
Terraform を使用した SSH 鍵の詳細の表示
Terraform を使用して特定の鍵の情報を取得するには、 ibm_is_ssh_keysを使用します。
name
変数には、詳細を表示する対象の SSH 鍵の名前を指定します。
data "ibm_is_ssh_key" "example" {
name = "example-ssh-key"
}
UIを使ってSSHキーを作成する
以下の手順で新しいSSHキーを作成します。 作成できるのは、RSH SSH 鍵タイプのみです。 Ed25519 SSH 鍵を使用するには、その SSH 鍵をインポートする必要があります。 詳しくは、「 UI を使用した SSH 鍵のインポート」を参照してください。
-
IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャー
コンピュート > SSH キーに進みます。
-
Create をクリックし、表1の情報を入力する。 | フィールド | --- | --- | | ロケーション|ロケーションは、リージョン(特定の地理的エリア)とゾーン(リージョン内のフォールトトレラントなデータセンター)で構成される。 SSHキーを作成する場所を選択します。| | 名前 | SSH 鍵には名前が必要です。| | リソースグループ|SSH鍵のリソースグループを選択します。| | タグ | SSH 鍵のリストを簡単にフィルタリングできるように、SSH 鍵にユーザー・タグを割り当てることができます。 詳しくは、「 タグの処理」を参照してください。| | アクセス管理タグ|アクセス管理タグは、特定のリソースに柔軟なアクセスポリシーを適用するのに役立ちます。 詳しくは、 タグを使用したリソースへのアクセスの制御 の UI チュートリアルを参照してください。| | SSH 鍵タイプ | デフォルト値は
rsa
です。UI を使用して新しい RSA 鍵ペアを生成できます。 既存の RSA 鍵および Ed25519 SSH 鍵をアップロードできます。 Ed25519 は、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ使用できます。 Ed25519はWindowsまたはVMwareイメージでは使用できません。| -
Generate a key pair for me を選択する。
-
オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。
-
「作成」 をクリックします。
これで、UI 上の SSH 鍵のリストに新しい SSH 鍵が表示されます。
UI を使用した SSH 鍵のインポート
SSHキーをインポートするには2つの方法がある。 ローカル・ファイルから公開鍵をアップロードできます。 または、公開鍵情報をコピーして UI に貼り付けることができます。
ローカル・ファイルから SSH 鍵をインポートするには、以下の手順を使用します。
-
IBM Cloud コンソールで、ナビゲーションメニュー アイコン
インフラストラクチャー
コンピュート > SSH キーに進みます。
-
Create をクリックし、表1の情報を入力する。 | フィールド | --- | --- | | ロケーション|ロケーションは、リージョン(特定の地理的エリア)とゾーン(リージョン内のフォールトトレラントなデータセンター)で構成される。 SSHキーを作成する場所を選択します。| | 名前 | SSH 鍵には名前が必要です。| | リソースグループ|SSH鍵のリソースグループを選択します。| | タグ | SSH 鍵のリストを簡単にフィルタリングできるように、SSH 鍵にユーザー・タグを割り当てることができます。 詳しくは、「 タグの処理」を参照してください。| | アクセス管理タグ|アクセス管理タグは、特定のリソースに柔軟なアクセスポリシーを適用するのに役立ちます。 詳しくは、 タグを使用したリソースへのアクセスの制御 の UI チュートリアルを参照してください。| | SSH 鍵タイプ | SSH 鍵の鍵タイプを選択します。 デフォルト値は
rsa
です。ed25519
SSH 鍵タイプは、オペレーティング・システムがこの鍵タイプをサポートしている場合にのみ、インスタンスの作成に使用できます。 この鍵タイプは、Windows イメージや VMware イメージでは使用できません。| -
Provide existing public key を選択します。
-
公開鍵のアップロードをクリックします。
-
公開鍵ファイルを選択し、「Open」をクリックする。 通常、ファイル拡張子
.pub
は、どのファイルに公開鍵が含まれているかを示します。 -
オプションで、 「サンプル API 呼び出しの取得 (Get sample API call)」 をクリックして、コピーできるすべての SSH 鍵情報を含む API コードを取得します。
-
「作成」 をクリックします。
ターミナルからSSHキーをコピーしてVPCにキーを追加すると、改行が余分に入り、解析エラーが発生することがあります。 この問題を防止するために、まずは、SSH 鍵をテキスト・エディターに貼り付けて余分な改行を削除してください。 それから、SSH 鍵をテキスト・エディターからコピーして VPC の UI、CLI、または API に貼り付けてください。
これで、インポートした SSH 鍵が UI 上の SSH 鍵のリストに表示されます。
CLI を使用した SSH 鍵のインポート
CLI を使用して SSH 鍵をインポートするには、 ibmcloud is key-create コマンドを使用します。 インポートするファイルは id_rsa.pub
または id_ed25519.pub
で、これには公開鍵が含まれています。 KEY_NAME
変数を使用して SSH 鍵の名前または ID を指定し、 KEY
変数を使用してインポートする
SSH 公開鍵を指定する必要があります。 --key-type
オプションを使用して SSH 鍵タイプを指定します。 オプションで、SSH 鍵の作成時にリソース・グループを指定できます。 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] [--key-type KEY_TYPE]
API を使用した SSH 鍵のインポート
API を使用して新しい SSH 鍵をインポートするには、 鍵の作成 を使用します。 インポートするファイルは id_rsa.pub
または id_ed25519.pub
で、これには公開鍵が含まれています。 API を使用して新規 SSH 鍵を作成することはできません。 ただし、UI を使用して新しい SSH 鍵を作成し、UI から、新しい
SSH 鍵を含む必要な API コード・スニペットを生成することができます。 詳しくは、 UI を使用した SSH 鍵の作成 を参照してください。
name
プロパティーには、SSH 鍵の名前を指定します。 public_key
プロパティーには、公開鍵情報を入力します。 type
プロパティーには、SSH 鍵タイプとして rsa
または ed25519
のいずれかを指定します。
Ed25519 SSH 鍵タイプを使用してインスタンスを作成できるのは、オペレーティング・システムがこの鍵タイプをサポートしている場合のみです。 この鍵タイプは、Windows イメージまたは VMware イメージでは使用できません。
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 鍵のインポート
Terraform を使用して新しい SSH 鍵をインポートするには、 ibm_is_ssh_keysを使用します。
新しいSSH鍵をインポートするには、以下の手順を実行する。
-
必要な値を指定して、
ibm_is_ssh_key
というリソース・ブロック・タイプを作成します。name
属性には、SSH 鍵のダミーの名前を指定します。public_key
属性には、ダミーの公開鍵情報を入力します。resource "ibm_is_ssh_key" "example_sshkey" { name = "my-key" public_key = "public-key" }
-
リソースを作成した後、以下の Terraform コマンドを実行して SSH 鍵をインポートします。
terraform import ibm_is_ssh_key.example_sshkey d7bec597-4726-451f-8a63-e62e6f19c32c
-
状態に合わせて構成を改善してください。 リソース・ブロックを置き換えないようにするには、リソース・ブロックの詳細をコピーします。
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" }
CLI を使用した SSH 鍵の更新
ibmcloud is key-update コマンドを使用して、既存の鍵を更新できます。 既存の鍵を更新し終えると、その鍵の名前が即時に変更されます。 詳しくは、 ibmcloud is key-delete を参照してください。 KEY
変数を使用して現在の SSH 鍵の名前を指定し、 --name
オプションで NEW_NAME
変数を使用して新しい SSH 鍵の名前を指定する必要があります。
ibmcloud is key-update KEY [--name NEW_NAME]
APIを使用してSSHキーを更新する
API を使用して既存の SSH 鍵を更新するには、 鍵の更新 を使用します。 既存の鍵を更新し終えると、その鍵の名前が即時に変更されます。
$id
変数には、SSH 鍵の現在の名前を指定します。 name
プロパティーに、SSH 鍵の新しい名前を指定します。
curl -X PATCH "$vpc_api_endpoint/v1/keys/$id?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token" -d '{ "name": "my-key-1-updated" }'
Terraform を使用した SSH 鍵の更新
Terraform を使用して既存の SSH 鍵を更新するには、 ibm_is_ssh_keysを使用します。 既存の鍵を更新し終えると、その鍵の名前が即時に変更されます。
-
SSH 鍵リソース・ブロックを更新します。
name
プロパティーに、SSH 鍵の新しい名前を指定します。resource "ibm_is_ssh_key" "example_sshkey" { name = "new-example-sshkey" public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR" type = "rsa" }
-
terraform apply
を実行して、新しい名前でリソースを更新します。
CLIを使ってSSHキーを削除する
CLI を使用して 1 つ以上の SSH 鍵を削除するには、 ibmcloud is key-delete コマンドを使用します。 詳しくは、 ibmcloud is key-delete を参照してください。 KEY
変数を使用して、削除する各 SSH 鍵の名前を指定します。
ibmcloud is key-delete (KEY1 KEY2 ...)
APIを使ってSSHキーを削除する
API を使用して 1 つ以上の SSH 鍵を削除するには、 Delete a key を使用します。
$id
変数には、削除する SSH 鍵の名前を指定します。
curl -X DELETE "$vpc_api_endpoint/v1/keys/$id?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token"
Terraform を使用した SSH 鍵の削除
Terraform を使用して SSH 鍵を削除するには、 ibm_is_ssh_keysを使用します。
example_sshkey
属性については、これを削除する SSH 鍵に置き換えます。
terraform destroy --target ibm_is_ssh_keys.example_sshkey