プロジェクトのSSHキー
SSHは、エクイニクスMetal™サーバーへのデフォルトのアクセス方法です。SSHキーはお客様のアカウントまたはプロジェクトに関連付けられ、プロビジョニングする各サーバーに追加できます。エクイニクスメタルは、SOS/OOBコンソールの認証にもSSHキーを使用しています。
プロジェクトSSHキーは1つのプロジェクトに固有のもので、特定のプロジェクトにデプロイされたサーバーにデフォルトで含まれます。このオプションは、共有サーバーで個人のSSHキーを使いたくない場合に便利です。
プロジェクトのSSHキーを生成する
Equinix MetalでSSH鍵を使用するには、まずローカルマシンで公開鍵と秘密鍵のペアを生成し、その公開鍵をEquinix Metalプロジェクトに関連付けます。
SSH キーペアを生成するには、Linux、Mac、および最新の Windows マシンで ssh-keygen コマンドを使用します。注:キー・ペアに使用する一意のSSHキー名と場所を指定することをお勧めします。これにより、既存の SSH 鍵を上書きすることがなくなります。
ssh-keygen -t ed25519 -f ~/.ssh/<proj_key_name>
Ed25519がサポートされていない古いマシンでは、RSA鍵が推奨最小鍵サイズ2048ビットでサポートされている。
ssh-keygen -t rsa -b 2048 -f ~/.ssh/<proj_key_name>
公開鍵の名前は<proj_key_name>.pubです。この鍵をEquinix Metalコンソールにアップロードします。同じディレクトリにあるもう1つの鍵ファイル<proj_key_name>は秘密鍵です。秘密鍵は共有しないでください。
注意 - SSH サーバーとクライアントを内蔵していない古い Windows バージョンを使用している場合は、鍵を生成 してサーバーに SSH 接続するために、PuTTY などのサードパーティ製アプリケーションをダウンロードして設定する必要があります。
プロジェクトにSSHキーを追加する
- Console
- API
プロジェクトの_Project Settings_ページの_SSH Keys_タブで、プロジェクトにSSHキーを追加できます。

SSH 鍵が追加されると、プロジェクト内の SSH 鍵リストに表示されます。キーの名前を変更または更新する必要がある場合は、編集 をクリックします。
API を使用して SSH キーをプロジェクトに追加するには、/projects/{id}/ssh-keys エンドポイントに POST リクエストを送信します。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/ssh-keys" \
-d '{
"label": "<string>",
"key": "<ssh_public_key>"
} '
SSH キーを更新する必要がある場合は、/ssh-keys/{id} エンドポイントに PUT リクエストを送信します。"label"、"key" のいずれか、または両方を更新できます。
curl -X PUT \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/ssh-keys/{id}" \
-d '{
"label": "<string>",
"key": "<ssh_public_key>"
} '
プロジェクトSSHキー - サーバーのプロビジョニング
サーバーをプロビジョニングするとき、デフォルトでは、すべてのユーザーアカウントの SSH 鍵、チームメンバーの SSH 鍵、およびプロジェクトの SSH 鍵がサーバーに追加され、サーバーへの認証アクセスが提供されます。このデフォルトを上書きして、新しいサーバーのプロビジョニング時に追加する鍵を指定することができます。
- Console
- API
コンソールでプロビジョニングする場合、利用可能なプロジェクトSSHキーは_オプション設定_の_SSHキー_タブに表示されます。

サーバーに追加するキーを選択する。
注:すべてのキー(Project、Personal、Collaborator)のチェックを外すと、すべての キーがデフォルトでサーバーに追加されます。SSH 鍵なしでコンソールでプロビジョニングする方法はありません。SSH キーなしでプロビジョニングするには、API を使用してください。
API でプロビジョニングする際に、どの Project SSH 鍵をサーバに含めるかをカスタマイズするには、projects/{id}/devices エンドポイントへの POST リクエストに "project_ssh_keys" パラメータを含めます。これにより、すべての SSH キーをサーバーに追加するデフォルトの動作が上書きされ、指定された SSH キーのみが追加されます。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"project_ssh_keys": [
<uuid>
]
}'
注目すべきボディ・パラメーター:
"project_ssh_keys"- An array containing a list of UUIDs of the Project's SSH keys used to authorize access this server. These keys will also appear in the device metadata.
"ssh_keys"ボディパラメータを使用すると、Equinix Metalがアップロード・管理していないSSH公開鍵をサーバーに追加することもできます。これらの鍵は、"project_ssh_keys"で定義されたすべての鍵とともにサーバーに追加されるか、利用可能なすべてのSSH鍵を追加するデフォルトの動作に加えて追加されます。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"ssh_keys": [
{
"key": "<ssh_public_key>",
"label": "<string>"
}
]
}'
注目すべきボディ・パラメーター:
"ssh_keys"- An array of SSH key objects that will be added to the server to authorize SSH access to it. These keys will also appear in the device metadata.
SSH 鍵が指定されていない場合("user_ssh_keys"、"project_ssh_keys"、"ssh_keys" がすべて空リストまたは省略)、利用可能なすべてのユーザー SSH 鍵、プロジェクト SSH 鍵、チームメンバーの SSH 鍵が含まれます。これはデフォルトの動作です。
SSHキーを使用しないプロビジョニング
SSH 鍵なしでサーバをプロビジョニングするには、projects/{id}/devices エンドポイントへの POST 要求に "no_ssh_keys" パラメータを明示的に含める必要があります。
curl -X POST \
-H "Content-Type: application/json" \
-H "X-Auth-Token: <API_TOKEN>" \
"https://api.equinix.com/metal/v1/projects/{id}/devices" \
-d '{
"metro": "<metro_code>",
"plan": "<server_type>",
"operating_system": "<os_code>",
"no_ssh_keys": true
}'
注目すべきボディ・パラメーター:
"no_ssh_keys"- Boolean that overrides default behavior of attaching user, team member, and Project SSH keys to a server and provisions it without any authorized SSH access.
プロジェクトSSHキーのポストプロビジョニング
プロビジョニングされたサーバーにどのような鍵があるかを確認する:
- Console
- CLI
- API
Equinix Metalコンソールのサーバー詳細ページの「SSH Keys」タブで、特定のサーバー上のSSH鍵を確認できます。

プロビジョニング時にサーバに追加された SSH 鍵は、CLI から metal device get コマンドで、--output フラグで JSON 出力を指定して取得できます。リストはレスポンスの ssh-keys オブジェクトにあります。
metal device get -i <device_id> -o json
また、API からサーバーの SSH キーを取得するには、/devices/{id}/ssh-keys エンドポイントに GET リクエストを送信します。
curl -X GET -H 'X-Auth-Token: <API_TOKEN>' \
"https://api.equinix.com/metal/v1/devices/{id}/ssh-keys"
SSHキーはいつでもプロジェクトに追加できますが、コンソールまたはAPIを通じてプロジェクトに追加されたキーは、NOT 自動的にサーバーに追加されます。Equinix Metalは、プロビジョニングされたサーバー上にこの操作を実行するためのエージェントやプロセスを保持していません。アクセスを許可するには、サーバー自体にSSHキーを追加する必要があります。
プロビジョニング済みサーバーで使用するキーを追加する場合は、コンソールに追加する際に、新しいキーを特定のサーバーまたはすべてのサーバーに関連付けるオプションをチェックしてください。このオプションもエクイニクスMetalコンソールからのみ利用できます。

これはサーバーへのSSHアクセスを直接許可するものではありませんが、SOS/OOBコンソールにログインして使用する際に、新しいSSHキーを使用できるようにします。その後、SOS/OOBコンソールを使用して、新しいSSHキーをサーバー上の認可されたキーに追加することができます。
プロジェクトのSSHキーを削除する
- Console
- CLI
- API
プロジェクトのSSHキーは、_Project Settings_ページの_SSH Keys_タブから削除できます。削除したいキーの横にあるDelete をクリックします。このSSHキーは、今後このプロジェクトでプロビジョニングするサーバーには追加されません。

ユーザーアカウントから SSH キーを削除するには、metal ssh-key delete コマンドを使用します。
metal ssh-key delete --id <SSH-key_UUID>
SSHキーは、今後プロビジョニングするサーバーには追加されません。
API では、/ssh-keys/{id} エンドポイントに DELETE を送信することで、アカウントから SSH キーを削除できます。
curl -X DELETE \
-H 'X-Auth-Token: <API_TOKEN>' \
"https://api.equinix.com/metal/v1/ssh-keys/{id}"
この鍵は、プロビジョニング時にサーバーに追加されることはない。
注: コンソールまたはAPIを通じてお客様のアカウントまたはプロジェクトから削除されたキーは、NOT 自動的にサーバーから削除されます。Equinix Metalは、プロビジョニングされたサーバー上にこの操作を実行するためのエージェントやプロセスを保持していません。アクセスを取り消すには、サーバーからSSHキーを手動で削除する必要があります。