Abilita l’autenticazione a più fattori per l’accesso SSH
Per una maggiore sicurezza, Adobe Commerce sull’infrastruttura cloud fornisce l’applicazione dell’autenticazione a più fattori (MFA) per gestire i requisiti di autenticazione per l’accesso SSH agli ambienti cloud.
Quando MFA è abilitato in un progetto, tutti gli account utente con accesso SSH richiedono un codice TFA (Two-Factor Authentication) o un token API e un certificato SSH per accedere all’ambiente.
Certificati per accesso SSH
MFA consente agli utenti di scambiare un token di accesso OAUTH con un certificato SSH di breve durata generato dall’API Adobe Cloud Certifier. Se l’utente ha il ruolo di Amministratore o Collaboratore, una chiave SSH valida e un codice TFA o un token API valido, Adobe Commerce on Cloud Infrastructure utilizza queste credenziali per generare il certificato SSH temporaneo. La scadenza del certificato è impostata su un'ora, ma viene aggiornata automaticamente durante la sessione corrente.
Dopo aver effettuato l'accesso a un progetto con MFA, gli utenti devono utilizzare l'interfaccia della riga di comando magento-cloud
per generare il certificato SSH:
magento-cloud ssh-cert:load
Il comando ssh-cert:load
genera il certificato SSH e lo installa nell'agente SSH dell'utente locale.
Genera automaticamente certificato all'accesso
È possibile configurare l'ambiente locale per generare automaticamente il certificato SSH quando si esegue l'autenticazione in CLI magento-cloud
.
Per aggiungere la generazione automatica del certificato SSH alla configurazione CLI magento-cloud
:
-
Nella workstation locale, creare un file denominato
config.yaml
nella cartella.magento-cloud
della home directory, se non esiste.code language-bash touch ~/.magento-cloud/config.yaml
-
Aggiungi la seguente configurazione al file
config.yaml
.code language-yaml api: auto_load_ssh_cert: true
-
Utilizzare l'interfaccia della riga di comando
magento-cloud
per eseguire nuovamente l'autenticazione:Disconnetti:
code language-bash magento-cloud logout
Accesso:
code language-bash magento-cloud login
Segui la risposta:
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
Connettersi a un ambiente utilizzando SSH con TFA
Quando MFA è abilitato in un progetto, è necessario che TFA sia abilitato sul proprio account prima di poter connettersi a un ambiente remoto utilizzando un SSH. Vedi Abilita TFA.
Prerequisiti:
Per i progetti abilitati con l’applicazione MFA, l’accesso SSH richiede le seguenti autorizzazioni e impostazioni account:
Per connettersi utilizzando SSH con le credenziali dell'account utente TFA:
-
Accedi a il tuo account.
-
Nella workstation locale utilizzare la CLI
magento-cloud
per generare il certificato SSH.code language-bash magento-cloud ssh-cert:load
Risposta di esempio:
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
-
Utilizzare un SSH per connettersi all'ambiente remoto.
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:~$
Gestire il codice sorgente utilizzando SSH con TFA
Quando gestisci il codice sorgente per i progetti di infrastruttura cloud di Adobe Commerce, utilizzi SSH per l’autenticazione nell’archivio Git del progetto. Se nel progetto è abilitata l’imposizione MFA, è necessario generare un certificato SSH prima di poter eseguire operazioni della riga di comando utilizzando l’archivio Git.
Per connettersi utilizzando SSH con le credenziali dell'account utente TFA:
-
Accedi a il tuo account e autentica tramite TFA.
note note NOTE Se sul tuo account non è abilitato TFA, devi attivarlo. Vedi Abilitare TFA sugli account cloud. -
Nella workstation locale utilizzare la CLI
magento-cloud
per generare il certificato SSH.code language-bash magento-cloud ssh-cert:load
Risposta di esempio:
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
-
Clona l’archivio Git per l’ambiente del progetto:
code language-bash git clone --branch integration abcdef7uyxabce@git.us-3.magento.cloud:abcdef7uyxabce.git myproject
Risposta di esempio:
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.
Connessione a un ambiente tramite SSH con un token API
Quando MFA è abilitato in un progetto, i processi automatizzati che richiedono l’accesso SSH a un ambiente Cloud richiedono un token API. Puoi generare il token da un account Adobe Commerce su infrastruttura cloud con accesso amministratore o collaboratore sul progetto.
L’autenticazione con un token API richiede ancora la generazione di un certificato SSH. I processi automatizzati devono inoltre automatizzare la generazione di un certificato SSH.
Prerequisiti:
Per connettersi tramite SSH con credenziali token API:
-
Accedi al progetto Cloud utilizzando l’autenticazione con chiave API.
code language-bash magento-cloud auth:api-token
-
Al prompt, immetti il valore per un token API valido.
code language-none Please enter an API token: > The API token is valid. You are logged in.
Esempio: script SSH automatizzato
Sono disponibili due opzioni per l’archiviazione del token API.
magento-cloud
si autentica automaticamente e non è necessario eseguire il comando magento-cloud login
.Opzione 1: creare una variabile di ambiente per memorizzare il token API
Scrivi il token sul tuo profilo_base
echo "export MAGENTO_CLOUD_CLI_TOKEN=<your api token>" >> ~/.bash_profile
Opzione 2: aggiungere il token al file config.yaml
-
Nella workstation locale, creare un file denominato
config.yaml
nella cartella.magento-cloud
della home directory, se non esiste.code language-bash touch ~/.magento-cloud/config.yaml
-
Aggiungi la seguente configurazione al file
config.yaml
.code language-yaml api: token: <your api token>
Script di base di esempio
#!/bin/bash
magento-cloud ssh-cert:load
ssh abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud "tail -n 10 ~/var/log/cloud.log"
Risoluzione dei problemi
Utilizzare le informazioni seguenti per risolvere gli errori delle richieste di connessione SSH dovuti a errori di autenticazione come access requires MFA
o permission denied
.
La richiesta non fornisce un certificato valido
Se la richiesta non fornisce un certificato valido, viene visualizzato un messaggio simile al seguente:
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)
Per risolvere il problema di connessione, provare le procedure di risoluzione dei problemi seguenti:
- Verifica la configurazione TFA dell’account
- Esegui di nuovo l'autenticazione, quindi ricarica il certificato
Per verificare la configurazione e l'autenticazione TFA:
-
Accedi a il tuo account.
-
Nel menu dell'account in alto a destra, fare clic su My Profile.
-
Nella pagina Profilo personale fare clic sulla scheda Security.
Se TFA è abilitato, la sezione Sicurezza fornisce opzioni per gestire la configurazione TFA.
-
Se TFA non è configurato, fare clic su Set up application e seguire le istruzioni per abilitarlo. Vedi Abilita TFA.
-
Se TFA è configurato, prova a eseguire di nuovo l’autenticazione.
Per autenticare e ricaricare il certificato SSH:
-
Utilizzare l'interfaccia della riga di comando
magento-cloud
per eseguire nuovamente l'autenticazione:code language-bash magento-cloud logout
code language-bash magento-cloud login
-
Ricarica il certificato SSH:
code language-bash magento-cloud ssh-cert:load
Autorizzazione negata
Se la chiave SSH è mancante o non valida, la richiesta di connessione SSH restituisce un errore 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).
Per risolvere il problema, aggiungi la chiave SSH alla sessione corrente oppure aggiorna il file di configurazione SSH per caricare automaticamente le chiavi SSH. Vedi Aggiungere una chiave SSH pubblica.
Impossibile accedere ai progetti senza MFA
Se esegui l’autenticazione in un progetto con Multi-Factor Authentication (MFA) abilitato, potresti ricevere il seguente errore durante la connessione ad altri progetti che non richiedono MFA:
ssh abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud
Risposta di esempio:
abcdef7uyxabce-master-7rqtabc--mymagento@ssh.us-3.magento.cloud: Permission denied (publickey).
Durante la generazione del certificato SSH, la CLI di magento-cloud
aggiunge una chiave SSH aggiuntiva all'ambiente locale. Tale chiave viene utilizzata per impostazione predefinita se la configurazione SSH locale non include la chiave SSH per l’accesso al progetto.
Per aggiungere la chiave SSH alla configurazione locale:
-
Creare il file
config
se non esiste.code language-bash touch ~/.ssh/config
-
Aggiungi una configurazione
IdentityFile
.code language-yaml Host * IdentityFile ~/.ssh/id_rsa
IdentityFile
voci alla configurazione.