À propos des connexions SSH


Compute Engine utilise l'authentification SSH basée sur des clés pour établir des connexions vers toutes les instances de machines virtuelles (VM) Linux. Vous pouvez éventuellement activer SSH pour les VM Windows. Par défaut, les mots de passe ne sont pas configurés pour les utilisateurs locaux sur les VM Linux.

Avant de pouvoir vous connecter à une VM, plusieurs configurations doivent être effectuées. Si vous utilisez la console Google Cloud ou Google Cloud CLI pour vous connecter à vos VM, Compute Engine effectue ces configurations en votre nom. Compute Engine effectue des configurations différentes selon l'outil que vous utilisez pour vous connecter et selon que vous gérez l'accès aux VM via des métadonnées ou OS Login. OS Login n'est disponible que pour les VM Linux.

Connexions SSH gérées par les métadonnées

Par défaut, Compute Engine utilise les métadonnées d'instance et/ou de projet personnalisées pour configurer les clés SSH et gérer l'accès SSH. Toutes les VM Windows utilisent des métadonnées pour gérer les clés SSH, tandis que les VM Linux peuvent utiliser des clés de métadonnées ou OS Login. Si vous utilisez OS Login, les clés SSH de métadonnées sont désactivées.

Cliquez sur chaque onglet pour en savoir plus sur les configurations effectuées par Compute Engine avant d'autoriser les connexions SSH lorsque vous utilisez la console Google Cloud, gcloud CLI ou des outils tiers pour vous connecter à des VM. Si vous vous connectez à des VM sans utiliser Google Cloud Console ou gcloud CLI, vous devez effectuer vous-même certaines configurations.

Console

  1. Vous allez utiliser le bouton SSH de Google Cloud Console pour vous connecter à votre VM.
  2. Compute Engine définit un nom d'utilisateur et crée une paire de clés SSH éphémère avec la configuration suivante :
    • Votre nom d'utilisateur est le nom d'utilisateur de votre compte Google. Par exemple, si l'adresse e-mail associée à votre compte Google est cloudysanfrancisco@gmail.com, votre nom d'utilisateur est cloudysanfrancisco.
    • Vos clés SSH publique et privée sont stockées dans votre session de navigateur.
    • Le délai d'expiration de votre clé SSH est de cinq minutes. Cinq minutes après que Compute Engine a créé la clé SSH, vous ne pouvez donc plus l'utiliser pour vous connecter à la VM.
  3. Compute Engine importe la clé SSH publique et le nom d'utilisateur dans les métadonnées.
  4. Compute Engine récupère la clé SSH et le nom d'utilisateur à partir des métadonnées, crée un compte utilisateur avec le nom d'utilisateur et, sur les VM Linux, stocke la clé publique dans le fichier ~/.ssh/authorized_keys associé à votre utilisateur sur la VM. Sur les VM Windows, Compute Engine ne stocke pas la clé publique sur la VM.
  5. Compute Engine autorise la connexion.

gcloud

  1. Vous allez utiliser la commande gcloud compute ssh pour vous connecter à votre VM.
  2. Compute Engine définit un nom d'utilisateur et crée une paire de clés SSH persistantes avec les configurations suivantes :
    • Votre nom d'utilisateur est le nom d'utilisateur défini sur votre ordinateur local.
    • Votre clé SSH publique est stockée dans les métadonnées du projet. Si Compute Engine ne peut pas stocker la clé SSH dans les métadonnées du projet, par exemple parce que block-project-ssh-keys est défini sur TRUE, Compute Engine stocke la clé SSH dans les métadonnées d'instance.
    • Votre clé SSH privée est stockée sur votre ordinateur local.
    • Votre clé SSH n'est associée à aucun délai d'expiration. Elle est utilisée pour toutes les connexions SSH à venir, sauf si vous configurez une nouvelle clé.
  3. Compute Engine importe la clé SSH publique et le nom d'utilisateur dans les métadonnées.
  4. Compute Engine récupère la clé SSH et le nom d'utilisateur à partir des métadonnées, crée un compte utilisateur avec le nom d'utilisateur et, sur les VM Linux, stocke la clé publique dans le fichier ~/.ssh/authorized_keys associé à votre utilisateur sur la VM. Sur les VM Windows, Compute Engine ne stocke pas la clé publique sur la VM.
  5. Compute Engine autorise la connexion.

Outils proposés par des tiers

  1. Vous créez une paire de clés SSH et un nom d'utilisateur. Pour plus de détails, consultez la section Créer des clés SSH.
  2. Vous importez la clé publique et le nom d'utilisateur dans les métadonnées. Pour en savoir plus, consultez la section Ajouter des clés SSH aux VM qui utilisent des clés SSH basées sur les métadonnées.
  3. Vous vous connectez à la VM.
  4. Compute Engine récupère la clé SSH et le nom d'utilisateur à partir des métadonnées, crée un compte utilisateur avec le nom d'utilisateur et, sur les VM Linux, stocke la clé publique dans le fichier ~/.ssh/authorized_keys associé à votre utilisateur sur la VM. Sur les VM Windows, Compute Engine ne stocke pas la clé publique sur la VM.
  5. Compute Engine autorise la connexion.

Connexions SSH gérées par OS Login

Lorsque vous définissez les métadonnées OS Login, Compute Engine supprime les fichiers authorized_keys de la VM et n'accepte plus les connexions à partir de clés SSH stockées dans les métadonnées du projet ou de l'instance.

Cliquez sur chaque onglet pour en savoir plus sur les configurations effectuées par Compute Engine avant d'autoriser les connexions SSH lorsque vous utilisez la console Google Cloud, gcloud CLI ou des outils tiers pour vous connecter à des VM. Si vous vous connectez à des VM sans utiliser Google Cloud Console ou gcloud CLI, vous devez effectuer vous-même certaines configurations.

Console

  1. Vous allez utiliser le bouton SSH de Google Cloud Console pour vous connecter à votre VM.
  2. Compute Engine définit un nom d'utilisateur et crée une paire de clés SSH éphémère avec la configuration suivante :
    • Votre nom d'utilisateur est le nom d'utilisateur défini par l'administrateur Cloud Identity ou Google Workspace de votre organisation. Si votre organisation n'a pas configuré de nom d'utilisateur pour vous ou si votre projet n'appartient à aucune organisation, Compute Engine utilise l'adresse e-mail de votre compte Google, au format suivant :

      USERNAME_DOMAIN_SUFFIX
      Par exemple, si l'adresse e-mail associée à votre compte Google est cloudysanfrancisco@gmail.com, le nom d'utilisateur généré est cloudysanfrancisco_gmail_com.

    • Votre clé SSH publique est stockée dans votre session de navigateur et dans votre compte Google.
    • Votre clé SSH privée est stockée dans votre session de navigateur.
    • Le délai d'expiration de votre clé SSH est de trois minutes. Trois minutes après que Compute Engine a créé la clé SSH, vous ne pouvez donc plus l'utiliser pour vous connecter à la VM.
  3. Compute Engine résout le nom d'utilisateur fourni sur votre compte OS Login dans la VM à l'aide des modules de service NSS.
  4. Compute Engine effectue l'autorisation IAM à l'aide de configurations PAM pour vous assurer que vous disposez des autorisations nécessaires pour la connexion.
  5. Compute Engine extrait la clé SSH de votre compte utilisateur et la transmet à OpenSSH dans la VM à l'aide de la commande "SSH authorized keys".
  6. Compute Engine autorise la connexion.

gcloud

  1. Vous allez utiliser la commande gcloud compute ssh pour vous connecter à votre VM.
  2. Compute Engine définit un nom d'utilisateur et crée une paire de clés SSH persistantes avec les configurations suivantes :
    • Votre nom d'utilisateur est le nom d'utilisateur défini par l'administrateur Cloud Identity ou Google Workspace de votre organisation. Si votre organisation n'a pas configuré de nom d'utilisateur pour vous, Compute Engine utilise l'adresse e-mail de votre compte Google, au format suivant :

      USERNAME_DOMAIN_SUFFIX
      Par exemple, si l'adresse e-mail associée à votre compte Google est cloudysanfrancisco@gmail.com, le nom d'utilisateur généré est cloudysanfrancisco_gmail_com.

    • Votre clé SSH publique est stockée dans votre compte Google.
    • Votre clé SSH privée est stockée sur votre ordinateur local dans le fichier google_compute_engine.
    • Votre clé SSH n'est associée à aucun délai d'expiration. Elle est utilisée pour toutes les connexions SSH à venir, sauf si vous configurez une nouvelle clé.
  3. Compute Engine résout le nom d'utilisateur fourni sur votre compte OS Login dans la VM à l'aide des modules de service NSS.
  4. Compute Engine effectue l'autorisation IAM à l'aide de configurations PAM pour vous assurer que vous disposez des autorisations nécessaires pour la connexion.
  5. Compute Engine extrait la clé SSH de votre compte utilisateur et la transmet à OpenSSH dans la VM à l'aide de la commande "SSH authorized keys".
  6. Compute Engine autorise la connexion.

Outils proposés par des tiers

  1. Vous créez une paire de clés SSH. Pour plus de détails, consultez la section Créer des clés SSH.
  2. Vous importez votre clé SSH publique dans votre profil OS Login. Pour plus d'informations, consultez la section Ajouter des clés aux VM qui utilisent OS Login.
    • Compute Engine stocke votre clé dans votre compte Google.
    • Compute Engine configure votre nom d'utilisateur au format par défaut :
          USERNAME_DOMAIN_SUFFIX
      Par exemple, si l'adresse e-mail associée à votre compte Google est cloudysanfrancisco@gmail.com, le nom d'utilisateur généré est cloudysanfrancisco_gmail_com.
  3. Vous pouvez également définir un nom d'utilisateur avec l'API Directory du SDK Admin Google Workspace.
  4. Vous vous connectez à la VM.
  5. Compute Engine résout le nom d'utilisateur fourni sur votre compte OS Login dans la VM à l'aide des modules de service NSS.
  6. Compute Engine effectue l'autorisation IAM à l'aide de configurations PAM pour vous assurer que vous disposez des autorisations nécessaires pour la connexion.
  7. Compute Engine extrait la clé SSH de votre compte utilisateur et la transmet à OpenSSH dans la VM à l'aide de la commande "SSH authorized keys".
  8. Compute Engine autorise la connexion.

Étape suivante