• Requisiti
  • Opzioni per le chiavi SSH
  • Rivedere le chiavi SSH
  • la Generazione di una nuova coppia di chiavi SSH
    • ED25519 chiavi SSH
    • RSA chiavi SSH
    • misure Comuni per la generazione di una coppia di chiavi SSH
    • Chiavi RSA e OpenSSH da versioni 6.5 a 7.,8
  • Aggiunta di una chiave SSH al vostro GitLab account
  • l’Autenticazione a Due fattori (2FA)
  • Prova che tutto è impostato correttamente
  • non-default coppia di chiavi SSH percorsi
  • Per ogni deposito chiavi SSH
  • account Multipli su un singolo GitLab istanza
  • Distribuire le chiavi
  • Applicazioni
    • Eclipse
  • SSH sul GitLab server
    • Opzioni per Microsoft Windows
  • Risoluzione dei problemi

Git è un sistema di controllo di versione distribuito, il che significa che si può lavorare a livello locale.,Inoltre, è anche possibile condividere o “spingere” le modifiche ad altri server.GitLab supporta la comunicazione sicura tra Git e i suoi server utilizzando le chiavi SSH.

Il protocollo SSH fornisce questa sicurezza e consente di autenticarsi su theGitLab remote server senza fornire il nome utente o la password ogni volta.

Questa pagina può aiutarti a configurare le chiavi SSH sicure che puoi usare per aiutare secureconnections nei repository GitLab.

  • Se hai bisogno di informazioni sulla creazione di chiavi SSH, inizia con le nostre opzioni per le chiavi SSH.,
  • Se hai chiavi SSH dedicate per il tuo account GitLab, potresti essere interessato a Lavorare con percorsi di coppia di chiavi SSH non predefiniti.
  • Se hai già una coppia di chiavi SSH, puoi andare su come aggiungere una chiave SSH al tuo account GitLab.

Requisiti

Per supportare SSH, GitLab richiede l’installazione del client OpenSSH, che viene preinstallato su GNU / Linux e macOS, così come su Windows 10.

Assicurati che il tuo sistema includa SSH versione 6.5 o successiva, in quanto ciò esclude lo schema di firma MD5 ora insicuro., Il seguente comando restituisce la versione di SSH installata sul sistema:

ssh -V

Mentre GitLab non supporta l’installazione su Microsoft Windows,è possibile impostare le chiavi SSH per configurare Windows come client.

Opzioni per le chiavi SSH

GitLab supporta l’uso di chiavi RSA, DSA, ECDSA ed ED25519.

  • GitLab ha deprecato le chiavi DSA in GitLab 11.0.
  • Come notato nella crittografia pratica con Go, i problemi di sicurezza relativi a DSA si applicano anche a ECDSA.,
Notala documentazione disponibile suggerisce che ED25519 è più sicuro. Se si utilizza una chiave RSA, il National Institute of Science and Technology degli Stati Uniti nella pubblicazione 800-57 Parte 3 (PDF) consiglia una dimensione della chiave di almeno 2048 bit.

Pertanto, la nostra documentazione si concentra sull’uso delle chiavi ED25519 e RSA.

Gli amministratori possono limitare le chiavi che devono essere consentite e le loro lunghezze minime.

Rivedere le chiavi SSH esistenti

Se si dispone di chiavi SSH esistenti, è possibile utilizzarle per proteggere le connessioni con GitLabrepositories., Per impostazione predefinita, le chiavi SSH sui sistemi Linux e macOS sono memorizzate nella directory home dell’utente,nella sottodirectory .ssh/. La seguente tabella include i nomi di file predefiniti per ciascun algoritmo di chiavi SSH:

Per i consigli, vedere Opzioni per chiavi SSH.

Generazione di una nuova coppia di chiavi SSH

Se si desidera creare:

  • Una chiave ED25519, leggere le chiavi SSH ED25519.
  • Una chiave RSA, leggere le chiavi SSH RSA.

Chiavi SSH ED25519

Il libro Crittografia pratica con Gosuggerisce che le chiavi ED25519 sono più sicure e performanti delle chiavi RSA.,

Poiché OpenSSH 6.5 ha introdotto le chiavi SSH ED25519 nel 2014, dovrebbero essere disponibili su qualsiasi sistema operativo corrente.

È possibile creare e configurare una chiave ED25519 con il seguente comando:

ssh-keygen -t ed25519 -C "<comment>"

Il flag -C, con un commento citato come un indirizzo email, è un modo opzionale per etichettare le chiavi SSH.

Vedrai una risposta simile a:

Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):

Per indicazioni, procedi ai passaggi comuni.,

Chiavi SSH RSA

Se si utilizzano chiavi RSA per SSH, il National Institute of Standards and Technology degli Stati Uniti raccomandache si utilizza una dimensione della chiave di almeno 2048 bits.By per impostazione predefinita, il comandossh-keygen crea una chiave RSA a 1024 bit.,

È possibile creare e configurare una chiave RSA con il seguente comando, sostituendo, se desiderato, per il minimo raccomandato chiave dimensioni 2048:

ssh-keygen -t rsa -b 2048 -C "[email protected]"

-C bandiera, con un tasso di commento come un indirizzo e-mail, facoltativo, è un modo per etichettare le chiavi SSH.

Vedrai una risposta simile a:

Generating public/private rsa key pair.Enter file in which to save the key (/home/user/.ssh/id_rsa):

Per indicazioni, procedi ai passaggi comuni.

notaSe hai OpenSSH versione 7.,8 o sotto, considera i problemi associaticon la codifica.

misure Comuni per la generazione di una coppia di chiavi SSH

Se si sta creando un ED25519 o una chiave RSA, hai iniziato con il ssh-keygen comando.A questo punto, verrà visualizzato il seguente messaggio nella riga di comando (per ED25519 tasti):

Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):

Se non si dispone già di una coppia di chiavi SSH e non generano una distribuzione di chiave di accettare le ha suggerito di file e directory. Il client SSH utilizza la coppia di chiavi SSH risultante senza alcuna configurazione aggiuntiva.,

In alternativa, è possibile salvare la nuova coppia di chiavi SSH in una posizione diversa.È possibile assegnare la directory e il nome del file di vostra scelta.Puoi anche dedicare quella coppia di chiavi SSH a un host specifico.

Dopo aver assegnato un file per salvare la chiave SSH, puoi impostare una passphrase per la tua chiave SSH:

Enter passphrase (empty for no passphrase):Enter same passphrase again:

In caso di successo, vedrai la conferma di dove il comandossh-keygen ha salvato la tua identificazione e chiave privata.,

Quando necessario, è possibile aggiornare la passphrase con il seguente comando:

chiavi RSA e OpenSSH dalle versioni 6.5 alla 7.8

Prima di OpenSSH 7.8, l’impronta digitale della chiave pubblica predefinita per le chiavi RSA era basata su MD5,ed è quindi non sicura.

Se la tua versione di OpenSSH si trova tra la versione 6.5 e la versione 7.8 (inclusa),eseguissh-keygencon l’opzione-o per salvare le tue chiavi SSH private nel formato più secureOpenSSH.,

Se si dispone già di una coppia di chiavi SSH RSA da utilizzare con GitLab, è consigliabile aggiornarla per utilizzare il formato di crittografia delle password più sicuro. È possibile farlo con il seguente comando:

ssh-keygen -o -f ~/.ssh/id_rsa

in Alternativa, è possibile generare una nuova chiave RSA con più di crittografia sicura formato con la seguente comando:

ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
notanon notato nel ssh-keygen pagina man, ED25519 già codifica chiavi più secureOpenSSH formato.,

Aggiunta di una chiave SSH al tuo account GitLab

Ora puoi copiare la chiave SSH creata nel tuo account GitLab. Per fare ciò, segui questi passaggi:

  1. Copia la tua chiave SSH pubblica in una posizione che salva le informazioni in formato testo.,Le seguenti opzioni salva le informazioni per ED25519 chiavi della clipboardfor il noto sistema operativo:

    macOS:

    pbcopy < ~/.ssh/id_ed25519.pub

    Linux (richiede il xclip pacchetto):

    xclip -sel clip < ~/.ssh/id_ed25519.pub

    Git Bash su Windows:

    cat ~/.ssh/id_ed25519.pub | clip

    Se si sta utilizzando una chiave RSA, sostituto di conseguenza.

  2. Vai a o all’URL dell’istanza GitLab locale e accedi.,
  3. Seleziona il tuo avatar nell’angolo in alto a destra e fai clic su Impostazioni
  4. Fai clic sui tasti SSH.
  5. Incolla la chiave pubblica copiata nella casella di testo Chiave.
  6. Assicurati che la tua chiave includa un nome descrittivo nella casella di testo del titolo, ad esempio Work Laptop o Workstation Home.
  7. Includere una data di scadenza (opzionale) per la chiave nella sezione “Scade a”. (Introdotto in GitLab 12.9.)
  8. Fare clic sul pulsante Aggiungi chiave.

Le chiavi SSH “scadute” utilizzando questa procedura sono valide nei flussi di lavoro di GitLab.,Poiché la data di scadenza configurata da GitLab non è inclusa nella chiave SSH stessa,è comunque possibile esportare le chiavi SSH pubbliche secondo necessità.

notaSe hai copiato manualmente la tua chiave SSH pubblica assicurati di aver copiato l’intera chiave che inizia con ssh-ed25519(o ssh-rsa) e termina con il tuo indirizzo email.

Autenticazione a due fattori (2FA)

È possibile impostare l’autenticazione a due fattori (2FA) forGit su SSH.,

Test che tutto è impostato correttamente

Per verificare se la tua chiave SSH è stato aggiunto correttamente, eseguire il followingcommand nel terminale (sostituire gitlab.com con il dominio ofyour GitLab esempio):

La prima volta che si collega GitLab via SSH, si dovrebbe verificare theauthenticity di GitLab host a cui ci si collega.Ad esempio, quando ci si connette a GitLab.com, risposta yes per aggiungere GitLab.,com all’elenco degli host attendibili:

The authenticity of host 'gitlab.com (35.231.145.151)' can't be established.ECDSA key fingerprint is SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'gitlab.com' (ECDSA) to the list of known hosts.
Nota per GitLab.com, consultare theSSH chiavi host impronte digitali, sezione per assicurarsi che si sta collegando al server corretto. Ad esempio, è possibile vedere l’impronta digitale della chiave ECDSA mostrata sopra nella sezione collegata.

Una volta aggiunto all’elenco degli host noti, è necessario convalidare nuovamente l’autenticità dell’host GitLab. Esegui di nuovo il comando precedente e dovresti ricevere un benvenuto in GitLab, @username! messaggio.,

Se il messaggio di benvenuto non viene visualizzata, è possibile risolvere il problema eseguendo sshin verbose mode con il comando seguente:

ssh -Tvvv [email protected]

Lavorare con i non-default coppia di chiavi SSH percorsi

Se si è utilizzato un non-percorso file predefinito per il tuo GitLab coppia di chiavi SSH,configurare il vostro client SSH per scegliere il vostro GitLab chiave SSH.

Per apportare queste modifiche, eseguire i seguenti comandi:

eval $(ssh-agent -s)ssh-add <path to private SSH key>

Ora salvare queste impostazioni nel file~/.ssh/config., Qui sono mostrati due esempi di chiavi SSH dedicate a GitLab:

# GitLab.comHost gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab_com_rsa# Private GitLab instanceHost gitlab.company.com Preferredauthentications publickey IdentityFile ~/.ssh/example_com_rsa

Le chiavi SSH pubbliche devono essere univoche per GitLab, poiché si legano al tuo account.La tua chiave SSH è l’unico identificatore che hai quando spingi il codice tramite SSH,ecco perché deve mappare in modo univoco a un singolo utente.,

Per ogni deposito chiavi SSH

Se si desidera utilizzare chiavi diverse a seconda del repository workingon, si può eseguire il seguente comando all’interno del vostro repository:

git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"

non utilizzare l’Agente SSH e richiede almeno Git 2.10.

Più account su una singola istanza GitLab

Il metodo per repository funziona anche per l’utilizzo di più account all’interno di una singola istanza GitLab.

In alternativa, è possibile assegnare direttamente alias agli host in~.ssh/config., SSH e, per estensione, Git non riesce ad accedere se c’è unIdentityFile impostato al di fuori di unHost blocco in.ssh/config. Questo è dovuto al modo in cui SSH assemblaIdentityFile voci e non viene modificato impostandoIdentitiesOnly ayes. IdentityFile le voci devono puntare alla chiave privata di una coppia di chiavi SSH.

Notal’esempio Hostgli alias sono definiti comeuser_1.gitlab.come user_2.gitlab.com per efficienza e trasparenza., Le configurazioni avanzate sono più difficili da mantenere; l’utilizzo di questo tipo di alias facilita la comprensione quando si utilizzano altri strumenti come git remote sotto-comandi. Ssh comprenderebbe qualsiasi stringa come aliasHost quindiTanuki1 eTanuki2,nonostante fornisca pochissimo contesto su dove puntano, funzionerebbe anche.,

la Clonazione del gitlab repository normalmente assomiglia a questo:

git clone [email protected]:gitlab-org/gitlab.git

Per clonare per user_1 sostituire gitlab.com con SSH alias user_1.gitlab.com:

git clone git@<user_1.gitlab.com>:gitlab-org/gitlab.git

Fissare un precedentemente clonato repository utilizzando il git remote comando.

L’esempio seguente presuppone che il repository remoto sia aliasato comeorigin.,

git remote set-url origin git@<user_1.gitlab.com>:gitlab-org/gitlab.git

Chiavi di distribuzione

Leggere la documentazione sulle chiavi di distribuzione.

Applicazioni

Eclipse

Se si utilizza EGit, è possibile aggiungere la chiave SSH a Eclipse.

SSH sul server GitLab

GitLab si integra con il demone SSH installato dal sistema, designando un utente(in genere chiamatogit) attraverso il quale vengono gestite tutte le richieste di accesso. Gli utenti che si connettono al server GitLab tramite SSH sono identificati dalla loro chiave SSH invece del loro nome utente.,

Le operazioni client SSH eseguite sul server GitLab vengono eseguite come thisuser. Sebbene sia possibile modificare la configurazione SSH per questo utente, ad esempio, fornire una chiave SSH privata per autenticare queste richieste, questa pratica non è supportata ed è fortemente sconsigliata in quanto presenta rischi di sicurezza significativi.

Il processo di controllo GitLab include un controllo per questa condizione e ti indirizza a questa sezione se il tuo server è configurato in questo modo, ad esempio:

Rimuovi la configurazione personalizzata non appena sei in grado di farlo., Queste personalizzazioni non sono esplicitamente supportate e potrebbero smettere di funzionare in qualsiasi momento.

Opzioni per Microsoft Windows

Se si esegue Windows 10, il Sottosistema Windows per Linux (WSL) e la sua ultima versione di WSL 2 supportano l’installazione di diverse distribuzioni Linux, tra cui i client Git e SSH.

Per le versioni correnti di Windows, è anche possibile installare i client Git e SSH con GIT per Windows.,

Gli strumenti alternativi includono:

  • Cygwin
  • PuttyGen

Risoluzione dei problemi

Se su Git clone viene richiesta una password come [email protected]'s password: qualcosa non va nella configurazione SSH.,

  • Assicurarsi che ha generato la vostra coppia di chiavi SSH correttamente e aggiunto il pubblico SSHkey al tuo GitLab profilo
  • Cercare manualmente la registrazione chiave SSH utilizzando ssh-agent come documentedearlier in questo documento
  • Tenta di eseguire il debug di connessione eseguendo ssh -Tv [email protected](sostituzione example.com con il GitLab dominio)

0