• Cerințele
  • Opțiuni pentru chei SSH
  • Revizuire existente chei SSH
  • Generatoare de o nouă pereche de chei SSH
    • ED25519 chei SSH
    • RSA chei SSH
    • măsuri Comune pentru a genera o pereche de chei SSH
    • Chei RSA și OpenSSH din versiunile 6,5-7.,8
  • Adăugarea unei chei SSH la GitLab cont
  • Autentificarea cu Doi factori (2FA)
  • Testarea că totul este configurat corect
  • de Lucru cu non-default pereche de chei SSH căi
  • Per-depozit de chei SSH
  • mai Multe conturi pe un singur GitLab exemplu
  • Implementa tastele
  • Aplicații
    • Eclipsa
  • SSH pe GitLab server
    • Opțiuni pentru Microsoft Windows
  • Depanare

Git este un sistem de control versiune distribuite, ceea ce înseamnă că puteți lucra la nivel local.,În plus, puteți partaja sau „împinge” modificările dvs. către alte servere.GitLab acceptă comunicarea securizată între Git și serverele sale folosind chei SSH.protocolul SSH oferă această securitate și vă permite să vă autentificați laserverul de la distanță GitLab fără a furniza numele de utilizator sau parola de fiecare dată.această pagină vă poate ajuta să configurați chei SSH sigure pe care le puteți utiliza pentru a ajuta la secureconnections la depozitele GitLab.dacă aveți nevoie de informații despre crearea cheilor SSH, începeți cu opțiunile noastre pentru tastele SSH.,

  • dacă aveți chei SSH dedicate pentru contul dvs.
  • dacă aveți deja o pereche de chei SSH, puteți accesa modul în care puteți adăuga o cheie SSH în contul dvs.pentru a sprijini SSH, GitLab necesită instalarea clientului OpenSSH, carevine preinstalat pe GNU / Linux și macOS, precum și pe Windows 10.

    asigurați-vă că sistemul dvs. include versiunea SSH 6.5 sau mai nouă, deoarece aceasta excludeschema de semnătură MD5 acum nesigură., Următoarea comandă returnează versiunea ofSSH instalat pe sistemul dvs.:

    ssh -V

    în Timp ce GitLab nu are suport pentru instalare pe Microsoft Windows,puteți configura chei SSH pentru a configura Windows ca un client.GitLab acceptă utilizarea tastelor RSA, DSA, ECDSA și ED25519.

    • GitLab a depreciat cheile DSA în GitLab 11.0.
    • după cum se menționează în criptografia practică cu Go, problemele de securitate legate de DSA se aplică și ECDSA.,
    noteAvailable documentation sugerează că ED25519 este mai sigur. Dacă utilizați o cheie RSA, Institutul Național de știință și Tehnologie din SUA în publicația 800-57 Partea 3 (PDF) recomandă o dimensiune a cheii de cel puțin 2048 biți.prin urmare, documentația noastră se concentrează pe utilizarea cheilor ED25519 și RSA.administratorii pot restricționa ce chei ar trebui să fie permise și lungimile lor minime.dacă aveți chei SSH existente, este posibil să le puteți utiliza pentru a ajuta la securizarea conexiunilor cu GitLabrepositories., În mod implicit, tastele SSH de pe sistemele Linux și macOS sunt stocate în directorul home al utilizatorului,în subdirectorul .ssh/. Următorul tabel include nume de fișiere implicite pentru fiecare algoritm de chei SSH:

    pentru recomandări, consultați opțiuni pentru tastele SSH.

    generarea unei noi perechi de chei SSH

    Dacă doriți să creați:

    • o cheie ED25519, citiți tastele ED25519 SSH.
    • o cheie RSA, citiți cheile RSA SSH.

    ED25519 chei SSH

    cartea Practice Criptografia Cu Gosuggests care ED25519 tastele sunt mai sigure și performante mult de chei RSA.,

    Ca OpenSSH 6.5 introdus ED25519 chei SSH în 2014, acestea ar trebui să fie disponibile pe orice currentoperating sistem.

    puteți crea și configura un ED25519 cheie cu următoarea comandă:

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

    -C pavilion, cu un citat în comentariu, cum ar fi o adresa de e-mail, este un opțional mod de a eticheta cheile SSH.

    veți vedea un răspuns similar cu:

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

    pentru îndrumare, treceți la pașii obișnuiți.,

    RSA chei SSH

    Dacă utilizați chei RSA pentru SSH, US Institutul Național de Standarde și Tehnologie recommendsthat utilizați o cheie cu dimensiunea de cel puțin 2048 bits.By default, ssh-keygen comandă creează un 1024-bit RSA key.,

    puteți să creați și să configurați o cheie RSA cu următoarea comandă, înlocuind dacă doriți pentru minim recomandat dimensiune-cheie a 2048:

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

    -C pavilion, cu un citat în comentariu, cum ar fi o adresa de e-mail, este un opțional mod de a eticheta cheile SSH.

    veți vedea un răspuns similar cu:

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

    pentru îndrumare, treceți la pașii obișnuiți.

    notațidacă aveți OpenSSH versiunea 7.,8 sau mai jos, luați în considerare problemele asociatecu codificare.

    măsuri Comune pentru a genera o pereche de chei SSH

    Dacă sunteți crearea unui ED25519 sau o cheie RSA, ai început cu ssh-keygen comandă.La acest punct, veți vedea următorul mesaj în linia de comandă (pentru ED25519 chei):

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

    Dacă nu aveți deja o pereche de chei SSH și nu sunt generatoare de o implementa cheie,accept sugerat de fișier și director. Clientul dvs. SSH utilizează perechea de chei SSH rezultată fără nicio configurație suplimentară.,alternativ, puteți salva noua pereche de chei SSH într-o altă locație.Puteți atribui directorul și numele fișierului la alegere.De asemenea, puteți dedica acea pereche de chei SSH unei anumite gazde.

    După atribuirea unui fișier pentru a salva o cheie SSH, puteți seta upa frază de acces pentru SSH cheie:

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

    Daca va avea succes, veți vedea confirmarea de unde ssh-keygen commandsaved de identificare și cheia privată.,

    atunci Când este necesar, puteți actualiza frază de acces cu următoarea comandă:

    ssh-keygen -p -f /path/to/ssh_key

    chei RSA și OpenSSH din versiunile de 6,5-7,8

    Înainte de OpenSSH 7.8, default amprentă de cheie publică pentru chei RSA s-a bazat pe MD5,și, prin urmare, este nesigur.

    Dacă versiunea dvs. de OpenSSH se află între versiunea 6.5 la versiunea 7.8 (inclusiv),run ssh-keygen cu -o opțiunea de a salva privat chei SSH în mai secureOpenSSH format.,

    Dacă aveți deja o pereche de chei RSA SSH pe care să o utilizați cu GitLab, luați în considerare actualizarea acestuiapentru a utiliza formatul de criptare a parolei mai sigur. Puteți face acest lucru cu următoarea comandă:

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

    Alternativ, puteți genera o nouă cheie RSA cu cele mai sigure de criptare format cu următoarea comandă:

    ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
    noteAs a remarcat în ssh-keygen om pagină, ED25519 deja criptează cheile de la mai multe secureOpenSSH format.,

    adăugarea unei chei SSH în contul GitLab

    acum Puteți copia cheia SSH pe care ați creat-o în contul GitLab. Pentru a face acest lucru, urmați acești pași:

    1. copiați cheia SSH publică într-o locație care salvează informații în format text.,Următoarele opțiuni salvează informații pentru ED25519 cheile de la clipboardfor remarcat sistem de operare:

      macOS:

      pbcopy < ~/.ssh/id_ed25519.pub

      Linux (necesită xclip pachet):

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

      Git Bash pe Windows:

      cat ~/.ssh/id_ed25519.pub | clip

      Dacă utilizați o cheie RSA, substituie în mod corespunzător.

    2. Navigați la sau local GitLab exemplu, URL-ul și conectați-vă.,
    3. selectați avatarul dvs. în colțul din dreapta sus și faceți clic pe Setări
    4. Faceți clic pe tastele SSH.
    5. lipiți cheia publică pe care ați copiat-o în caseta de text a cheii.
    6. asigurați-vă că cheia dvs. include un nume descriptiv în caseta de text Titlu, cum ar fi laptopul de lucru sauhome Workstation.
    7. includeți o dată de expirare (opțională) pentru cheia din secțiunea „expiră la”. (Introdus în GitLab 12.9.)
    8. Faceți clic pe butonul Adăugare cheie.

    tastele SSH care au „expirat” folosind această procedură sunt valabile în fluxurile de lucru GitLab.,Deoarece Data de expirare configurată de GitLab nu este inclusă în cheia SSH în sine,puteți exporta în continuare chei SSH publice, după cum este necesar.

    notădacă aveți manual copiat publice cheie SSH asigurați-vă că ați copiat entirekey începând cu ssh-ed25519 (sau ssh-rsa) și se termină cu adresa de e-mail.

    Autentificare cu doi factori (2FA)

    Puteți configura autentificarea cu doi factori (2FA) forGit peste SSH.,

    Testarea că totul este configurat corect

    Pentru a testa dacă o cheie SSH a fost adăugat în mod corect, executați followingcommand în terminalul (înlocuiți gitlab.com cu domeniul tău GitLab exemplu):

    prima dată când vă conectați la GitLab prin SSH, ar trebui să verificați theauthenticity de GitLab gazdă care vă conectați.De exemplu, atunci când vă conectați la GitLab.com, răspunsul yes pentru a adăuga GitLab.,com la lista de încredere gazde:

    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.
    noteFor GitLab.com consulta theSSH gazdă amprentele chei,secțiune pentru a asigurați-vă că vă conectați la serverul corect. De exemplu, puteți vedea amprenta cheii ECDSA prezentată mai sus în secțiunea legată.odată adăugat la lista de gazde cunoscute, ar trebui să validațiautenticitatea gazdei GitLab, încă o dată. Rulați comanda de mai sus și ar trebui să primiți un bun venit la GitLab, @username! mesaj.,

    Dacă mesajul de bun venit nu apare, puteți depana o problemă de funcționare sshîn modul verbose cu următoarea comandă:

    ssh -Tvvv [email protected]

    de Lucru cu non-default pereche de chei SSH căi

    Dacă ai folosit un non-default calea de fișier pentru GitLab pereche de chei SSH,configurarea SSH client la punctul la GitLab privat cheie SSH.

    Pentru a face aceste modificări, executați următoarele comenzi:

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

    Acum a salva aceste setări la ~/.ssh/config fișier., Două examplesfor chei SSH dedicat GitLab sunt prezentate aici:

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

    Publice chei SSH trebuie să fie unic pentru GitLab, ca ei se leaga de cont.Cheia SSH este singurul identificator pe care îl aveți atunci când împingeți codul prin SSH,de aceea trebuie să mapeze în mod unic la un singur utilizator.,

    Per-depozit de chei SSH

    Dacă doriți să utilizați chei diferite, în funcție de depozit se vor ocupa, puteți emite următoarea comandă în timp ce în interiorul depozitului:

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

    Acest lucru nu folosi SSH Agent și necesită cel puțin Git 2.10.

    mai Multe conturi pe un singur GitLab exemplu

    pe-depozit metodă, de asemenea, funcționează pentru usingmultiple conturile într-un singur GitLab exemplu.

    alternativ, este posibil să atribuiți direct pseudonime gazdelor în~.ssh/config., SSH și, prin extensie, Git nu reușește să vă conectați, dacă nu isan IdentityFile set afara de un Host bloc .ssh/config. Acest isdue la cum SSH asamblează IdentityFile intrări și nu este schimbat bysetting IdentitiesOnly și yes. IdentityFile intrările ar trebui să indice cătrecheia privată a unei perechi de chei SSH.

    notă: exemplu Host alias-urile sunt definite ca user_1.gitlab.com șiuser_2.gitlab.com pentru eficiența și transparența., Avansate configurationsare mai dificil să se mențină; folosind acest tip de alias face mai ușor tounderstand atunci când se utilizează alte instrumente, cum ar fi git remote sub-comenzi. SSHwould înțelege orice șir ca un Host alias astfel Tanuki1 și Tanuki2,in ciuda faptului ca foarte putin context unde au punct, ar lucra, de asemenea.,

    Clonare gitlab depozit în mod normal, se pare ca acest lucru:

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

    Pentru a clona pentru user_1, înlocuiți gitlab.com cu SSH alias user_1.gitlab.com:

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

    Fix o anterior clonați repository folosind git remote comandă.

    exemplul de mai jos presupune că depozitul la distanță este Alias ca origin.,

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

    implementați cheile

    citiți documentația privind implementați cheile.

    Aplicații

    Eclipse

    Dacă utilizați EGit, puteți adăuga cheia SSH la Eclipse.

    SSH pe GitLab server

    GitLab se integrează cu sistemul instalat SSH daemon, desemnarea unui utilizator(de obicei numit git) prin care toate cererile de acces sunt manipulate. Utilizatorii care se conectează la serverul GitLab prin SSH sunt identificați prin cheia SSH în loc de numele lor de utilizator.,operațiunile clientului SSH efectuate pe serverul GitLab sunt executate ca acest lucruutilizator. Deși este posibil să se modifice SSH de configurare pentru acest utilizator,de exemplu, oferă un privat cheie SSH pentru a autentifica aceste cereri de acest practiceis nu este acceptat și este puternic descurajată, deoarece prezintă significantsecurity riscuri.procesul de verificare GitLab include o verificare a acestei condiții și vă direcționează către această secțiune dacă serverul dvs. este configurat astfel, de exemplu:

    eliminați configurația personalizată imediat ce puteți., Aceste personalizări nu sunt acceptate în mod explicit și pot înceta să funcționeze în orice moment.

    Opțiuni pentru Microsoft Windows

    Dacă rulați Windows 10, Windows Subsistem pentru Linux (WSL), și ultimele sale WSL 2 versiune,suport instalare de diferite distribuții Linux, care include Git si SSH clienti.pentru versiunile curente de Windows, puteți instala, de asemenea, clienții Git și SSH cugit Pentru Windows.,instrumentele Alternative includ:

    • Cygwin
    • PuttyGen

    depanare

    Dacă pe Git clone vi se solicită o parolă ca [email protected]'s password:ceva nu este în regulă cu configurarea SSH.,

    • Asigurați-vă că ați generat tău pereche de chei SSH corect și a adăugat publice SSHkey la GitLab profil
    • Încercați înregistrare manual privat cheie SSH folosind ssh-agent ca documentedearlier în acest document
    • Încercați pentru a depana conexiunea de funcționare ssh -Tv [email protected](înlocuirea example.com cu GitLab domeniu)

    0