Gestion des clés SSH

Pour accéder aux instances IBM Cloud® Virtual Servers for Virtual Private Cloud, vous devez disposer d'une clé SSH. Vous pouvez créer, mettre à jour et supprimer des clés SSH dans la console d' IBM Cloud, via l'interface de ligne de commande (CLI) et via l'API.

La gestion des clés à l'aide de la console IBM Cloud ou de l'interface de ligne de commande n'a aucun effet sur les clés des instances déjà créées. (Pour une instance Linux existante, vous pouvez modifier les clés directement dans le répertoire ~/.ssh/ de l'instance.)

IBM Cloud® Virtual Private Cloud prend en charge deux types différents de clés SSH publiques.

  • RSA
  • Ed25519

Vous pouvez générer de nouvelles paires de clés RSA à l'aide de l'interface utilisateur. Il est possible d'importer des clés RSA et SSH « Ed25519 » existantes. Ed25519 ne peut être utilisé que si le système d'exploitation prend en charge ce type de clé. Ed25519 ne peut pas être utilisé avec des images Windows ou VMware.

Avant de commencer

Pour créer une instance de serveur virtuel, vous devez créer ou télécharger une clé SSH et la mettre à disposition afin de pouvoir vous connecter à votre instance après sa mise à disposition.

Gestion des clés SSH dans la console IBM Cloud

Lorsque vous mettez à disposition un serveur virtuel, vous pouvez créer une nouvelle clé SSH, effectuer une sélection dans une liste disponible de clés SSH existantes ou en télécharger une nouvelle.

  1. Dans la console d' IBM Cloud, accédez à l'icône du menu de navigation > icône VPC de l'infrastructure > Compute > Clés SSH. Toutes les clés SSH existantes sont affichées.
  2. Dans l'onglet Clés SSH pour VPC, cliquez sur l'icône Actions icône Actions supplémentaires pour une clé SSH et sélectionnez l'une des options disponibles.
    Action Description
    Renommer Une fois que vous avez mis à jour une clé SSH existante, celle-ci est immédiatement renommée.
    Supprimer Une fois qu'une clé SSH a été supprimée, elle ne peut plus être utilisée lors de la création d'une instance ou lors de la réinstallation du système d'exploitation sur une instance existante. Cependant, la clé est toujours disponible sur toutes les instances que vous avez précédemment provisionnées avec celle-ci, et vous pouvez l'utiliser pour vous connecter.

Vous obtenez l'affichage d'une liste des régions disponibles pour votre groupe de ressources spécifique.

Gestion des clés SSH à l'aide de l'interface de ligne de commande

Vous pouvez également gérer vos clés SSH à l'aide de l'interface de ligne de commande.

IBM Cloud Assurez-vous que le plug-in CLI « vpc-infrastructure » est bien installé. Pour plus d'informations, voir Référence de l'interface de ligne de commande d'IBM Cloud pour VPC.

Actions sur les clés SSH
Action Commande Que se passe-t-il ensuite ?
Créez une clé SSH. ibmcloud is key-create Une fois que vous avez créé une clé SSH, celle-ci est ajoutée à la liste des clés.
Afficher les détails de la clé. ibmcloud is key Vous pouvez afficher le nom d'une clé et son ID.
Répertorier les clés. ibmcloud is keys Vous pouvez afficher toutes vos clés SSH existantes.
Clé de mise à jour. ibmcloud is key-update Lorsqu'une clé existante est mise à jour, elle est renommée immédiatement.
Supprimer une clé. ibmcloud is key-delete Une fois que vous avez supprimé une clé SSH, celle-ci ne peut plus être utilisée lors de la création d'une instance ou lors de la réinstallation du système d'exploitation sur une instance existante. Cependant, la clé est toujours disponible sur toutes les instances que vous avez précédemment provisionnées avec celle-ci, et vous pouvez l'utiliser pour vous connecter.

Gestion des clés SSH à l'aide de l'API

Vous pouvez également gérer vos clés SSH à l'aide de l'API. Pour plus d’informations sur les variables $iam_token utilisées $vpc_api_endpoint dans les exemples suivants, consultez les sections Authentification et URL des points de terminaison dans l’introduction à l’API Virtual Private Cloud.

Gestion des clés SSH à l'aide de Terraform

Vous pouvez également gérer vos clés SSH à l'aide de Terraform. Pour plus d'informations, voir ibm_is_ssh_keys.

Affichage de la liste de toutes vos clés SSH à l'aide de l'interface utilisateur

Pour répertorier toutes vos clés SSH, procédez comme suit.

  1. Dans la console d' IBM Cloud, accédez à l'icône du menu de navigation > icône VPC de l'infrastructure > Compute > Clés SSH.
  2. Toutes les clés SSH existantes sont affichées.

Affichage de la liste de toutes vos clés SSH à l'aide de l'interface de ligne de commande

Pour afficher toutes vos clés SSH existantes, utilisez la commande ibmcloud is keys.

Utilisez l'option --all-resource-groups pour répertorier les clés SSH pour tous les groupes de ressources disponibles. Vous pouvez éventuellement filtrer la liste pour n'inclure que les clés SSH d'un groupe de ressources spécifique. Spécifiez le groupe de ressources à l'aide de la variable RESOURCE_GROUP_ID ou RESOURCE_GROUP_NAME. Pour plus d'informations, voir ibmcloud is keys.

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

Affichage de la liste de toutes vos clés SSH à l'aide de l'API

Pour répertorier toutes les clés SSH à l'aide de l'API, utilisez Répertorier toutes les clés.

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

Affichage de la liste de toutes vos clés SSH à l'aide de Terraform

Pour répertorier toutes les clés SSH à l'aide de Terraform, utilisez ibm_is_ssh_keys.

data "ibm_is_ssh_keys" keys {}

Affichage des détails de votre clé SSH à l'aide de l'interface utilisateur

Vous pouvez afficher les détails suivants d'une clé SSH.

  • Nom
  • Groupe de ressources
  • Empreinte digitale
  • Type
  • Longueur
  • Date de création (locale)

Pour afficher les détails d'une clé SSH, procédez comme suit.

  1. Dans la console d' IBM Cloud, accédez à l'icône du menu de navigation > icône VPC de l'infrastructure > Compute > Clés SSH.
  2. Sur la page Clés SSH pour VPC, la liste de toutes les clés SSH existantes s'affiche.
  3. Dans le menu Actions, vous pouvez Renommer ou Supprimer la clé SSH.

Affichage des détails de votre clé SSH à l'aide de l'interface de ligne de commande

Vous pouvez afficher le nom de la clé et l'ID de la clé à l'aide de la commande ibmcloud is key. Indiquez le nom de la clé SSH à l'aide de la variable KEY. Pour plus d'informations, consultez la section ibmcloud is key dans le guide de référence de la CLI VPC.

ibmcloud is key KEY

Affichage des détails de votre clé SSH à l'aide de l'API

Pour extraire des informations pour une clé spécifique à l'aide de l'API, utilisez Extraire une clé.

Pour la variable $id, indiquez le nom de la clé SSH dont vous souhaitez afficher les détails.

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

Affichage des détails de votre clé SSH à l'aide de Terraform

Pour extraire des informations pour une clé spécifique à l'aide de Terraform, utilisez ibm_is_ssh_keys.

Pour la variable name, indiquez le nom de la clé SSH dont vous souhaitez afficher les détails.

data "ibm_is_ssh_key" "example" {
  name = "example-ssh-key"
}

Création d'une clé SSH à l'aide de l'interface utilisateur

Suivez les étapes suivantes pour créer une nouvelle clé SSH. Vous ne pouvez créer que des types de clé SSH RSH. Pour utiliser une clé SSH Ed25519, cette clé SSH doit être importée. Pour plus d'informations, voir Importation d'une clé SSH à l'aide de l'interface utilisateur.

  1. Dans la console d' IBM Cloud, accédez à l'icône du menu de navigation > icône VPC de l'infrastructure > Compute > Clés SSH.
  2. Cliquez sur Créer et entrez les informations répertoriées dans le tableau 1.
    Field Value
    Emplacement Les emplacements se composent de régions (zones géographiques spécifiques) et de zones (centres de données à tolérance de pannes au sein d'une région). Sélectionnez l'emplacement où vous souhaitez créer votre clé SSH.
    Nom Un nom est requis pour votre clé SSH.
    Groupe de ressources Sélectionnez un groupe de ressources pour la clé SSH.
    Balises Vous pouvez affecter une balise utilisateur à la clé SSH afin de pouvoir filtrer facilement une liste de clés SSH. Pour plus d'informations, voir Utilisation d'étiquettes.
    Balises de gestion des accès Les balises de gestion des accès vous aident à appliquer des politiques d'accès flexibles à des ressources spécifiques. Pour plus d'informations, voir le tutoriel Contrôle de l'accès aux ressources à l'aide de balises de l'interface utilisateur.
    Type de clé SSH La valeur par défaut est rsa.Vous pouvez générer de nouvelles paires de clés RSA à l'aide de l'interface utilisateur. Il est possible d'importer des clés RSA et SSH « Ed25519 » existantes. Ed25519 ne peut être utilisé que si le système d'exploitation prend en charge ce type de clé. Ed25519 Ne peut pas être utilisé avec des images Windows ou VMware.
  1. Sélectionnez Générer une paire de clés pour moi.
  2. Si vous le souhaitez, cliquez sur Obtenir un exemple d'appel d'API pour obtenir un code d'API avec toutes vos informations de clé SSH que vous pouvez copier.
  3. Cliquez sur Créer.

Votre nouvelle clé SSH est désormais affichée dans la liste des clés SSH de l'interface utilisateur.

Importation d'une clé SSH à l'aide de l'interface utilisateur

Vous pouvez importer une clé SSH de deux façons. Vous pouvez télécharger une clé publique à partir d'un fichier local. Vous pouvez également copier et coller vos informations de clé publique dans l'interface utilisateur.

Procédez comme suit pour importer une clé SSH à partir d'un fichier local.

  1. Dans la console d' IBM Cloud, accédez à l'icône du menu de navigation > icône VPC de l'infrastructure > Compute > Clés SSH.
  2. Cliquez sur Créer et entrez les informations répertoriées dans le tableau 1.
    Field Value
    Emplacement Les emplacements se composent de régions (zones géographiques spécifiques) et de zones (centres de données à tolérance de pannes au sein d'une région). Sélectionnez l'emplacement où vous souhaitez créer votre clé SSH.
    Nom Un nom est requis pour votre clé SSH.
    Groupe de ressources Sélectionnez un groupe de ressources pour la clé SSH.
    Balises Vous pouvez affecter une balise utilisateur à la clé SSH afin de pouvoir filtrer facilement une liste de clés SSH. Pour plus d'informations, voir Utilisation d'étiquettes.
    Balises de gestion des accès Les balises de gestion des accès vous aident à appliquer des politiques d'accès flexibles à des ressources spécifiques. Pour plus d'informations, voir le tutoriel Contrôle de l'accès aux ressources à l'aide de balises de l'interface utilisateur.
    Type de clé SSH Sélectionnez un type de clé pour la clé SSH. La valeur par défaut est rsa. Le type de clé SSH ed25519 ne peut être utilisé que pour créer des instances si le système d'exploitation prend en charge ce type de clé. Ce type de clé ne peut pas être utilisé avec des images Windows ou « VMware ».
  1. Sélectionnez Fournir une clé publique existante.
  2. Cliquez sur Télécharger la clé publique.
  3. Sélectionnez le fichier de clé publique, puis cliquez sur Ouvrir. L'extension de fichier, .pub, indique généralement le fichier qui contient la clé publique.
  4. Si vous le souhaitez, cliquez sur Obtenir un exemple d'appel d'API pour obtenir un code d'API avec toutes vos informations de clé SSH que vous pouvez copier.
  5. Cliquez sur Créer.

Si vous copiez une clé SSH depuis un terminal pour l'ajouter à votre VPC, des sauts de ligne supplémentaires peuvent parfois s'introduire, ce qui provoque une erreur d'analyse. Pour éviter ce problème, collez d'abord votre clé SSH dans un éditeur de texte et supprimez les retours à la ligne en trop. Copiez ensuite la clé SSH à partir de l'éditeur de texte et collez-la dans l'interface utilisateur VPC, l'interface de ligne de commande ou l'API.

Votre clé SSH importée est désormais affichée dans la liste des clés SSH de l'interface utilisateur.

Importation de votre clé SSH à l'aide de l'interface de ligne de commande

Pour importer une clé SSH à l'aide de l'interface de ligne de commande, utilisez la commande ibmcloud is key-create. Le fichier que vous importez est id_rsa.pub ou id_ed25519.pub, qui contient votre clé publique. Vous devez spécifier le nom ou l'ID de la clé SSH à l'aide de la variable KEY_NAME et la clé SSH publique que vous importez à l'aide de la variable KEY. Spécifiez le type de clé SSH avec l'option --key-type. Vous pouvez éventuellement spécifier un groupe de ressources lorsque vous créez la clé SSH. Spécifiez le groupe de ressources à l'aide de la variable RESOURCE_GROUP_ID ou RESOURCE_GROUP_NAME. Voir ibmcloud is key-create dans le guide de référence de l'interface de ligne de commande VPC.

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]

Importation de votre clé SSH à l'aide de l'API

Pour importer une nouvelle clé SSH à l'aide de l'API, utilisez Créer une clé. Le fichier que vous importez est id_rsa.pub ou id_ed25519.pub, qui contient votre clé publique. Vous ne pouvez pas créer de nouvelle clé SSH à l'aide de l'API. Toutefois, vous pouvez créer une nouvelle clé SSH à l'aide de l'interface utilisateur et, à partir de l'interface utilisateur, générer le fragment de code d'API dont vous avez besoin et qui inclut la nouvelle clé SSH. Pour plus d'informations, voir Création d'une clé SSH à l'aide de l'interface utilisateur.

Pour la propriété name, indiquez le nom de la clé SSH. Pour la propriété public_key, entrez les informations de clé publique. Pour la propriété type, spécifiez rsa ou ed25519 pour le type de clé SSH.

Le type de clé SSH « Ed25519 » ne peut être utilisé pour créer des instances que si le système d'exploitation prend en charge ce type de clé. Ce type de clé ne peut pas être utilisé avec des images Windows ou « 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"
    }'

Importation de votre clé SSH à l'aide de Terraform

Pour importer une nouvelle clé SSH à l'aide de Terraform, utilisez ibm_is_ssh_keys.

Pour importer une nouvelle clé SSH, procédez comme suit.

  1. Créez un type de bloc de ressources ibm_is_ssh_key avec les valeurs requises. Pour l'attribut name, indiquez le nom factice de la clé SSH. Pour l'attribut public_key, entrez les informations de clé publique factice.

    resource "ibm_is_ssh_key" "example_sshkey" {
      name = "my-key"
      public_key = "public-key"
    }
    
  2. Après avoir créé la ressource, exécutez la commande Terraform suivante pour importer la clé SSH.

    terraform import ibm_is_ssh_key.example_sshkey d7bec597-4726-451f-8a63-e62e6f19c32c
    
  1. Améliorez la configuration pour qu'elle corresponde à l'état. Copiez les détails du bloc de ressources pour éviter de remplacer le bloc de ressources.

 ```terraform {: codeblock}
 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"
 }

Mise à jour de votre clé SSH à l'aide de l'interface de ligne de commande

Vous pouvez mettre à jour une clé existante à l'aide de la commande ibmcloud is key-update. Lorsqu'une clé existante est mise à jour, elle est renommée immédiatement. Pour plus d'informations, voir ibmcloud is key-delete. Vous devez spécifier le nom de clé SSH en cours à l'aide de la variable KEY et le nouveau nom de clé SSH à l'aide de la variable NEW_NAME dans l'option --name.

```sh {: pre}

ibmcloud is key-update KEY [--name NEW_NAME]

## Mise à jour de votre clé SSH à l'aide de l'API {: #updating-ssh-keys-api api}

Pour mettre à jour une clé SSH existante à l'aide de l'API, utilisez [Mettre à jour une clé](/docs/apis/vpc/latest#update-key). Lorsqu'une clé existante est mise à jour, elle est renommée immédiatement.

Pour la variable `$id`, indiquez le nom actuel de la clé SSH. Pour la propriété `name`, indiquez le nouveau nom de la clé SSH.

  ```sh {: pre}
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" }'

Mise à jour de votre clé SSH à l'aide de Terraform

Pour mettre à jour une clé SSH existante à l'aide de Terraform, utilisez ibm_is_ssh_keys. Lorsqu'une clé existante est mise à jour, elle est renommée immédiatement.

1. Mettez à jour le bloc de ressources de clé SSH. Pour la propriété `name`, indiquez le nouveau nom de la clé 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"
}
1. Exécutez `terraform apply` pour mettre à jour la ressource avec le nouveau nom.

Suppression de votre clé SSH à l'aide de l'interface de ligne de commande (CLI)

Pour supprimer une ou plusieurs clés SSH à l'aide de l'interface de ligne de commande, utilisez la commande ibmcloud is key-delete. Pour plus d'informations, voir ibmcloud is key-delete. Indiquez le nom de chaque clé SSH que vous supprimez à l'aide de la variable KEY.

```sh {: pre}

ibmcloud is key-delete (KEY1 KEY2 ...)

## Suppression de votre clé SSH à l'aide de l'API {: #deleting-ssh-keys-api api}

Pour supprimer une ou plusieurs clés SSH à l'aide de l'API, utilisez [Supprimer une clé](/docs/apis/vpc/latest#delete-key).

Pour la variable `$id`, indiquez le nom de la clé SSH à supprimer.

  ```sh {: pre}
curl -X DELETE "$vpc_api_endpoint/v1/keys/$id?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token"

Suppression de votre clé SSH à l'aide de Terraform

Pour supprimer votre clé SSH à l'aide de Terraform, utilisez ibm_is_ssh_keys.

Pour l'attribut example_sshkey, remplacez-le par la clé SSH que vous souhaitez supprimer.

terraform destroy --target ibm_is_ssh_keys.example_sshkey