Activer l’authentification multifacteur pour l’accès SSH
Pour une sécurité accrue, Adobe Commerce sur les infrastructures cloud fournit une application d’authentification multifacteur (MFA) pour gérer les exigences d’authentification pour l’accès SSH aux environnements cloud.
Lorsque l’authentification multifacteur est activée sur un projet, tous les comptes utilisateur avec un accès SSH nécessitent un code d’authentification à deux facteurs (TFA) ou un jeton API et un certificat SSH pour accéder à l’environnement.
Certificats pour l’accès SSH
MFA permet aux utilisateurs d’exchange un jeton d’accès OAUTH à un certificat SSH de courte durée généré par l’API Adobe Cloud Certifier. Si l’utilisateur dispose du rôle d’administrateur ou de contributeur, d’une clé SSH valide et d’un code TFA ou d’un jeton API valide, Adobe Commerce sur l’infrastructure cloud utilise ces informations d’identification pour générer le certificat SSH temporaire. L’expiration du certificat est définie sur une heure, mais elle s’actualise automatiquement pendant la session en cours.
Après s’être connecté à un projet avec MFA, les utilisateurs doivent utiliser l’interface de ligne de commande magento-cloud
pour générer le certificat SSH :
magento-cloud ssh-cert:load
La commande ssh-cert:load
génère le certificat SSH et l’installe dans l’agent SSH de l’utilisateur local.
Générer automatiquement un certificat lors de la connexion
Vous pouvez configurer votre environnement local pour générer automatiquement le certificat SSH lorsque vous vous authentifiez auprès de l’interface de ligne de commande magento-cloud
.
Pour ajouter la génération automatique de certificat SSH à votre configuration d’interface de ligne de commande magento-cloud
:
-
Sur votre station de travail locale, créez un fichier nommé
config.yaml
dans le dossier.magento-cloud
de votre répertoire personnel s’il n’existe pas.code language-bash touch ~/.magento-cloud/config.yaml
-
Ajoutez la configuration suivante au fichier
config.yaml
.code language-yaml api: auto_load_ssh_cert: true
-
Utilisez l’interface de ligne de commande
magento-cloud
pour vous authentifier à nouveau :Déconnectez-vous :
code language-bash magento-cloud logout
Connexion :
code language-bash magento-cloud login
Suivez la réponse :
code language-none Please open the following URL in a browser and log in: http://127.0.0.1:5000 Help: Leave this command running during login. If you need to quit, use Ctrl+C. To log in using an API token, run: magento-cloud auth:api-token-login Login information received. Verifying... You are logged in. Generating SSH certificate... A new SSH certificate has been generated. It will be automatically refreshed when necessary. The certificate is included in your SSH configuration: /Users/<user-name>/.ssh/config
Connexion à un environnement à l’aide de SSH avec TFA
Lorsque MFA est activé sur un projet, TFA doit être activé sur votre compte avant de pouvoir vous connecter à un environnement distant à l’aide d’un SSH. Voir Activer TFA.
Conditions préalables :
Pour les projets activés avec l’application MFA, l’accès SSH nécessite les autorisations et paramètres de compte suivants :
Pour vous connecter à l’aide de SSH avec les informations d’identification de compte utilisateur TFA :
-
Connectez-vous à votre compte.
-
Sur votre station de travail locale, utilisez l’interface de ligne de commande
magento-cloud
pour générer le certificat SSH.code language-bash magento-cloud ssh-cert:load
Exemple de réponse :
code language-none Generating SSH certificate... Expires at: 2020-07-13T15:28:13-04:00 Multi-factor authentication: verified Mode: interactive The certificate will be automatically refreshed when necessary. Checking SSH configuration file: /Users/<user-name>/.ssh/config Do you want to update the file automatically? [Y/n] Y Configuration file updated successfully: /Users/<user-name>/.ssh/config
-
Utilisez un SSH pour vous connecter à l’environnement distant.
code language-bash ssh abcdef7uyxabce-master-7rqtwti--mymagento@ssh.us-5.magento.cloud
code language-none __ __ _ ___ _ _ | \/ |__ _ __ _ ___ _ _| |_ ___ / __| |___ _ _ __| | | |\/| / _` / _` / -_) ' \ _/ _ \ | (__| / _ \ || / _` | |_| |_\__,_\__, \___|_||_\__\___/ \___|_\___/\_,_\__,_| |___/ Welcome to Magento Cloud. This is environment master-7rqtwti of project abcdef7uyxabce. web@mymagento.0:~$
Gestion du code source à l’aide de SSH avec TFA
Lors de la gestion du code source pour Adobe Commerce sur des projets d’infrastructure cloud, vous utilisez SSH pour vous authentifier auprès du référentiel Git pour le projet. Si l’application MFA est activée pour votre projet, vous devez générer un certificat SSH avant de pouvoir effectuer des opérations de ligne de commande à l’aide du référentiel Git.
Pour vous connecter à l’aide de SSH avec les informations d’identification de compte utilisateur TFA :
-
Connectez-vous à votre compte et authentifiez-vous à l’aide de TFA.
note note NOTE Si le TFA n’est pas activé sur votre compte, vous devez l’activer. Voir Activer TFA sur les comptes cloud. -
Sur votre station de travail locale, utilisez l’interface de ligne de commande
magento-cloud
pour générer le certificat SSH.code language-bash magento-cloud ssh-cert:load
Exemple de réponse :
code language-none Generating SSH certificate... Expires at: 2020-07-13T15:28:13-04:00 Multi-factor authentication: verified Mode: interactive The certificate will be automatically refreshed when necessary. Checking SSH configuration file: /Users/<user-name>/.ssh/config Do you want to update the file automatically? [Y/n] Y Configuration file updated successfully: /Users/<user-name>/.ssh/config
-
Clonez le référentiel Git pour l’environnement de votre projet :
code language-bash git clone --branch integration abcdef7uyxabce@git.us-3.magento.cloud:abcdef7uyxabce.git myproject
Exemple de réponse :
code language-none Cloning into 'myproject'... Connection to git.us-3.magento.cloud port 22 [tcp/ssh] succeeded! remote: counting objects: 22, done. Receiving objects: 100% (22/22), 82.42 KiB | 16.48 MiB/s, done.
Connexion à un environnement à l’aide de SSH avec un jeton API
Lorsque MFA est activé sur un projet, les processus automatisés qui nécessitent un accès SSH à un environnement cloud nécessitent un jeton API. Vous pouvez générer le jeton à partir d’un compte d’infrastructure cloud Adobe Commerce avec un accès administrateur ou contributeur au projet.
L’authentification avec un jeton API nécessite toujours la génération d’un certificat SSH. Les processus automatisés doivent également automatiser la génération d’un certificat SSH.
Conditions préalables :
Pour vous connecter à l’aide de SSH avec des informations d’identification de jeton API :
-
Connectez-vous au projet Cloud à l’aide de l’authentification par clé API.
code language-bash magento-cloud auth:api-token
-
À l’invite, saisissez la valeur d’un jeton API valide.
code language-none Please enter an API token: > The API token is valid. You are logged in.
Exemple : script SSH automatisé
Il existe deux options pour stocker le jeton API.
magento-cloud
s’authentifie automatiquement et il n’est pas nécessaire d’exécuter la commande magento-cloud login
.Option 1 : créer une variable d’environnement pour stocker le jeton API
Écrire le jeton sur votre bash_profile
echo "export MAGENTO_CLOUD_CLI_TOKEN=<your api token>" >> ~/.bash_profile
Option 2 : ajouter le jeton au fichier config.yaml
-
Sur votre station de travail locale, créez un fichier nommé
config.yaml
dans le dossier.magento-cloud
de votre répertoire personnel s’il n’existe pas.code language-bash touch ~/.magento-cloud/config.yaml
-
Ajoutez la configuration suivante au fichier
config.yaml
.code language-yaml api: token: <your api token>
Exemple de script Bash
#!/bin/bash
magento-cloud ssh-cert:load
ssh abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud "tail -n 10 ~/var/log/cloud.log"
Dépannage
Utilisez les informations suivantes pour résoudre les échecs des demandes de connexion SSH en raison d’erreurs d’authentification telles que access requires MFA
ou permission denied
.
Votre demande ne fournit pas de certificat valide
Si votre requête ne fournit pas de certificat valide, un message similaire à celui-ci s’affiche :
to Hello user-test (UUID: abaacca12-5cd1-4b123-9096-411add578998), you successfully
authenticated, but could not connect to service abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud:>
(reason: access requires MFA)
Essayez les procédures de dépannage suivantes pour résoudre le problème de connexion :
- Vérifier la configuration de l’AFE du compte
- Réauthentifiez-vous, puis rechargez le certificat
Pour vérifier la configuration et l’authentification TFA :
-
Connectez-vous à votre compte.
-
Dans le menu supérieur droit du compte, cliquez sur My Profile.
-
Sur la page Mon profil, cliquez sur l’onglet Security.
Si TFA est activé, la section Sécurité fournit des options pour gérer la configuration TFA.
-
Si TFA n’est pas configuré, cliquez sur Set up application et suivez les instructions pour l’activer. Voir Activer TFA.
-
Si TFA est configuré, essayez de vous authentifier à nouveau.
Pour authentifier et recharger le certificat SSH :
-
Utilisez l’interface de ligne de commande
magento-cloud
pour vous authentifier à nouveau :code language-bash magento-cloud logout
code language-bash magento-cloud login
-
Rechargez le certificat SSH :
code language-bash magento-cloud ssh-cert:load
Autorisation refusée
Si la clé SSH est manquante ou non valide, la requête de connexion SSH renvoie une erreur Permission denied (publickey)
.
Hello user-test (UUID: abaacca12-5cd1-4b123-9096-411add578998), you successfully authenticated, but could not connect to service oh2wi6klp5ytk-mc-35985-integration-nnulm4a--mymagento (reason: service doesn't exist or you do not have access to it)
oh2wi6klp5ytk-mc-35985-integration-nnulm4a--mymagento@ssh.eu-3.magento.cloud: Permission denied (publickey).
Pour résoudre le problème, ajoutez la clé SSH à votre session en cours ou mettez à jour le fichier de configuration SSH pour charger automatiquement vos clés SSH. Voir Ajouter une clé SSH publique.
Impossible d’accéder aux projets sans MFA
Si vous vous authentifiez dans un projet pour lequel l’authentification multifacteur (MFA) est activée, vous pouvez recevoir l’erreur suivante lors de la connexion à d’autres projets qui ne nécessitent pas d’authentification multifacteur :
ssh abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud
Exemple de réponse :
abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud: Permission denied (publickey).
Pendant la génération du certificat SSH, l’interface de ligne de commande magento-cloud
ajoute une clé SSH supplémentaire à votre environnement local. Cette clé est utilisée par défaut si votre configuration SSH locale n’inclut pas la clé SSH pour l’accès au projet.
Pour ajouter votre clé SSH à la configuration locale :
-
Créez le fichier
config
s’il n’existe pas.code language-bash touch ~/.ssh/config
-
Ajoutez une configuration
IdentityFile
.code language-yaml Host * IdentityFile ~/.ssh/id_rsa
IdentityFile
à votre configuration.