• Krav
  • Valg af SSH-nøgler
  • Gennemgå eksisterende SSH keys
  • at Generere en ny SSH-key pair
    • ED25519 SSH keys
    • RSA SSH keys
    • Common trin for at generere en SSH-key pair
    • RSA-nøgler og OpenSSH-versioner fra 6,5 til 7.,8
  • Tilføje en SSH-nøgle til din GitLab konto
  • To-faktor-Autentificering (2FA)
  • Test, at alt er indstillet korrekt
  • Arbejde med ikke-standard-SSH-key pair stier
  • Per-repository SSH keys
  • Flere konti på en enkelt GitLab eksempel
  • Anvende tasterne
  • Programmer
    • Eclipse
  • SSH på GitLab server
    • Indstillinger for Microsoft Windows
  • Fejlfinding

Git er et distribueret version control system, hvilket betyder, at du kan arbejde lokalt.,Derudover kan du også dele eller “skubbe” dine ændringer til andre servere.GitLab understøtter sikker kommunikation mellem Git og dets servere ved hjælp af SSH-nøgler.

SSH-protokollen giver denne sikkerhed og giver dig mulighed for at godkende GitLab fjernserver uden at angive dit Brugernavn eller din adgangskode hver gang.

denne side kan hjælpe dig med at konfigurere sikre SSH-nøgler, som du kan bruge til at hjælpe secureconnections til GitLab-arkiver.

  • hvis du har brug for oplysninger om oprettelse af SSH-nøgler, skal du starte med vores muligheder for SSH-nøgler.,
  • hvis du har SSH-nøgler dedikeret til din GitLab-konto, kan du være interesseret i at arbejde med ikke-standard SSH-nøglepar-stier.
  • hvis du allerede har et SSH-nøglepar, kan du gå til hvordan du kan tilføje en SSH-nøgle til din GitLab-konto.

krav

for at understøtte ssh kræver GitLab installationen af OpenSSH-klienten, somkommer forudinstalleret på GNU / Linu.og macOS såvel som på .indo .s 10.

sørg for, at dit system indeholder SSH version 6.5 eller nyere, da det udelukker den nu usikre MD5-signaturordning., Følgende kommando returnerer version ofSSH, der er installeret på dit system:

ssh -V

Mens GitLab understøtter ikke installation på Microsoft Windows,kan du konfigurere SSH-nøgler til at oprette Windows som en klient.

Indstillinger for SSH-nøgler

GitLab understøtter brugen af RSA, DSA, ECDSA, og ED25519 nøgler.

  • GitLab har forældede DSA-nøgler i GitLab 11.0.
  • som bemærket i praktisk kryptografi med Go, gælder sikkerhedsproblemerne i forbindelse med DSA også for ECDSA.,
ikke tilgængelig dokumentation tyder på, at ED25519 er mere sikker. Hvis du bruger en RSA-nøgle, anbefaler US National Institute of Science and Technology i offentliggørelse 800-57 Del 3 (PDF) en nøglestørrelse på mindst 2048 bit.

derfor fokuserer vores dokumentation på brugen af ED25519-og RSA-nøgler.

administratorer kan begrænse, hvilke nøgler der skal tillades, og deres minimumslængder.

gennemgå eksisterende SSH-nøgler

Hvis du har eksisterende SSH-nøgler, kan du muligvis bruge dem til at hjælpe med at sikre forbindelser med GitLabrepositories., Som standard gemmes SSH-nøgler på Linu. – og macOS-systemer i brugerens hjemmekatalog i undermappen .ssh/. Følgende tabel indeholder standardfilnavne for hver SSH-nøglealgoritme:

se indstillinger for SSH-nøgler for anbefalinger.

generering af et nyt SSH-nøglepar

Hvis du vil oprette:

  • en ED25519-nøgle, skal du læse ED25519 SSH-nøgler.
  • en RSA-nøgle, Læs RSA SSH-nøgler.

ED25519 SSH keys

bogen Praktisk Kryptografi Med Gosuggests, at ED25519 nøgler er mere sikker og højtydende end RSA-nøgler.,

da OpenSSH 6.5 introducerede ED25519 SSH-nøgler i 2014, skal de være tilgængelige på ethvert nuværende operativsystem.

Du kan oprette og konfigurere en ED25519 nøgle med følgende kommando:

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

-C flag, med en citerede kommentar, såsom en e-mail-adresse, er en valgfri måde at mærke din SSH-nøgler.

du vil se et svar svarende til:

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

for vejledning, gå videre til de almindelige trin.,

RSA SSH keys

Hvis du bruger RSA-nøgler til SSH, det AMERIKANSKE Nationale Institut for Standarder og Teknologi recommendsthat du bruge en nøgle størrelse på mindst 2048 bits.By standard ssh-keygen kommando opretter en 1024-bit RSA-nøgle.,

Du kan oprette og konfigurere en RSA-nøgle med følgende kommando at erstatte, hvis det ønskes for den mindste anbefalede centrale størrelsen af 2048:

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

-C flag, med en citerede kommentar, såsom en e-mail-adresse, er en valgfri måde at mærke din SSH-nøgler.

du vil se et svar svarende til:

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

for vejledning, gå videre til de almindelige trin.

noteIf du har OpenSSH version 7.,8 eller under, overvej de problemer, der er forbundetmed kodning.

Common trin for at generere en SSH-key pair

uanset Om du er ved at oprette en ED25519 eller en RSA-nøgle, du har startet med ssh-keygen kommandoen.På dette punkt, vil du se følgende besked i kommandolinjen (for ED25519 nøgler):

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

Hvis du ikke allerede har en SSH-nøgle-par og er ikke generere en anvendelse af centrale,accepter det foreslåede fil og mappe. Din SSH-klient bruger det resulterende SSH-nøglepar uden yderligere konfiguration.,

Alternativt kan du gemme det nye SSH-nøglepar et andet sted.Du kan tildele mappen og filnavnet efter eget valg.Du kan også dedikere det SSH-nøglepar til en bestemt vært.

Når du har tildelt en fil for at gemme din SSH-nøgle, kan du indstille upa løsen for din SSH-nøgle:

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

Hvis det lykkes, vil du se en bekræftelse af, hvor ssh-keygen commandsaved din identifikation og private nøgle.,

Når det er nødvendigt, kan du opdatere den adgangssætning, med følgende kommando:

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

RSA-nøgler og OpenSSH fra version 6.5 7.8

Før OpenSSH 7.8, standard public key fingerprint for RSA-nøgler var baseret på MD5,og er derfor usikre.

Hvis din version af OpenSSH ligger mellem version 6.5 til version 7.8 (inklusiv),kør ssh-keygen med -o mulighed for at gemme din egen SSH-nøgler i mere secureOpenSSH format.,

Hvis du allerede har et RSA SSH-nøglepar til brug med GitLab, skal du overveje at opgradere det for at bruge det mere sikre kodeordskrypteringsformat. Du kan gøre dette med følgende kommando:

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

Alternativt, kan du generere en ny RSA-nøgle med mere sikker kryptering format med følgende kommando:

ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
noteAs angives i ssh-keygen mand side, ED25519 allerede krypterer nøglerne til mere secureOpenSSH format.,

tilføjelse af en SSH-nøgle til din GitLab-konto

nu kan du kopiere den SSH-nøgle, du oprettede, til din GitLab-konto. For at gøre dette skal du følge disse trin:

  1. Kopier din offentlige SSH-nøgle til et sted, der gemmer oplysninger i tekstformat.,Følgende indstillinger gemmer oplysninger for ED25519 nøgler til clipboardfor det bemærkes, operativsystem:

    macOS:

    pbcopy < ~/.ssh/id_ed25519.pub

    Linux (kræver xclip pakke):

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

    Git Bash på Windows:

    cat ~/.ssh/id_ed25519.pub | clip

    Hvis du bruger en RSA-nøgle, erstatning i overensstemmelse hermed.

  2. Naviger til eller din lokale GitLab-instansadresse, og log ind.,
  3. vælg din avatar i øverste højre hjørne, og klik på Indstillinger
  4. Klik på SSH-taster.
  5. indsæt den offentlige nøgle, som du kopierede, i tekstboksen nøgle.
  6. sørg for, at din nøgle indeholder et beskrivende navn i tekstboksen Titel, f.eks.
  7. Medtag en (valgfri) udløbsdato for nøglen under “udløber ved” sektionen. (Introduceret i GitLab 12.9.)
  8. Klik på knappen Tilføj nøgle.

SSH-nøgler, der er “udløbet” ved hjælp af denne procedure, er gyldige i GitLab-arbejdsgange.,Da den GitLab-konfigurerede udløbsdato ikke er inkluderet i selve SSH-nøglen, kan du stadig eksportere offentlige SSH-nøgler efter behov.

hvis du manuelt kopieret dine offentlig SSH-nøgle sørg for, at du har kopieret den entirekey, der starter med ssh-ed25519 (eller ssh-rsa) og slutter med din e-mail-adresse.

Tofaktorautentisering (2FA)

Du kan konfigurere tofaktorautentisering (2FA) forGit over SSH.,

Test, at alt er indstillet korrekt

for At teste, om din SSH-nøgle blev tilføjet korrekt, skal du køre followingcommand i din terminal (udskift gitlab.com med domænet ofyour GitLab eksempel):

første gang du opretter forbindelse til GitLab via SSH, skal du kontrollere, theauthenticity af GitLab vært, at du opretter forbindelse til.For eksempel, når du opretter forbindelse til GitLab.com svar yes for at tilføje GitLab.,kom til listen over betroede værter:

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 høre theSSH vært nøgler fingeraftryk,sektion for at sikre, at du opretter forbindelse til den korrekte server. For eksempel kan du secdsa-nøglefingeraftryk vist ovenfor i det linkede afsnit.

Når du er tilføjet til listen over kendte værter, skal du validerehenticitet af GitLab-værten igen. Kør ovenstående kommandoigen, og du skal modtage en velkomst til GitLab, @username! besked.,

Hvis den velkomst meddelelse ikke vises, kan du foretage fejlfinding af problemet ved at køre sshi ‘ verbose mode med følgende kommando:

ssh -Tvvv [email protected]

Arbejder med ikke-standard-SSH-key pair stier

Hvis du bruger en ikke-standard fil-stien til din GitLab SSH-nøgle par,konfigurere din SSH-klienten til at pege på din GitLab egen SSH-nøgle.

for at foretage disse ændringer skal du køre følgende kommandoer:

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

Gem nu disse indstillinger til ~/.ssh/config fil., To examplesfor SSH-nøgler, der er dedikeret til GitLab er vist her:

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

Offentlige SSH-nøgler skal være unikke for at GitLab, som de binder til din konto.Din SSH-nøgle er den eneste identifikator,du har, når du trykker på kode via SSH, det er derfor, den skal entydigt kortlægge til en enkelt bruger.,

Per-repository SSH keys

Hvis du ønsker at bruge forskellige nøgler, afhængigt af det arkiv, som du er workingon, kan du udføre følgende kommando, mens du er inde i din repository:

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

Dette ikke bruge SSH-Agent, og kræver mindst Git 2.10.

flere konti på en enkelt GitLab-instans

pr-repository-metoden fungerer også til at bruge flere konti i en enkelt GitLab-instans.

alternativt er det muligt direkte at tildele aliaser til værter i~.ssh/config., SSH og i forlængelse heraf undlader Git at logge ind, hvis der er en IdentityFile indstillet uden for enHost blok i.ssh/config. Dette isdue til, hvordan SSH samler IdentityFile poster og er ikke ændret bysetting IdentitiesOnly til yes. IdentityFile indgange skal pege på den private nøgle i et SSH-nøglepar.

noteThe eksempel Host aliaser er defineret som user_1.gitlab.com oguser_2.gitlab.com for effektivitet og gennemsigtighed., Avancerede konfigurationer er sværere at vedligeholde; brug af denne type alias gør det lettere at forstå, når du bruger andre værktøjer som git remote underkommandoer. SSHwould forstå enhver streng som en Host alias således Tanuki1 og Tanuki2,på trods af at give meget lidt sammenhæng, hvor de point, vil også arbejde.,

Kloning gitlab repository normalt ser ud som dette:

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

for At klone den for user_1 udskift gitlab.com SSH-alias user_1.gitlab.com:

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

Fastsætte en tidligere klonet repository med git remote kommandoen.

eksemplet nedenfor antager, at fjernarkivet er aliaseret somorigin.,

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

Deploy keys

læs dokumentationen om Deploy Keys.

programmer

Eclipse

Hvis du bruger EGit, kan du tilføje din SSH-nøgle til Eclipse.

SSH på GitLab-serveren

GitLab integrerer med den systeminstallerede SSH-dæmon, der udpeger en bruger(typisk navngivet git), gennem hvilken alle adgangsanmodninger håndteres. Usersconnecting to the GitLab server over SSH identificeres ved deres SSH-nøgle i stedet for deres brugernavn.,

SSH-klientoperationer udført på GitLab-serveren udføres som dettebruger. Selv om det er muligt at ændre SSH-konfigurationen for denne bruger til f.eks. at give en privat SSH-nøgle til at godkende disse anmodninger af, understøttes denne praksis ikke Og frarådes kraftigt, da den indebærer betydelige sikkerhedsrisici.

GitLab check-processen omfatter en check på denne betingelse, og dirigerer youto dette afsnit, hvis din server er konfigureret som dette, for eksempel:

Fjern brugerdefineret konfiguration, så snart du er i stand til., Disse tilpasninger understøttes eksplicit ikke og kan stoppe med at arbejde når som helst.

Indstillinger for Microsoft Windows

Hvis du kører Windows 10, Windows-Undersystemet til Linux (WSL), og sin seneste WSL 2 version,support, installation af forskellige Linux distributioner som inkluderer Gnome og SSH-klienter.

for aktuelle versioner af Windowsindo .s kan du også installere git-og SSH-klienterne medgit til Windowsindo .s.,

Alternativ værktøjer er:

  • Cygwin
  • PuttyGen

Fejlfinding

Hvis du er på Git clone du bliver bedt om en adgangskode som [email protected]'s password:der er noget galt med din SSH opsætningen.,

  • Sikre, at du har genereret din SSH-nøgle parret korrekt og tilføjet den offentlige SSHkey til din GitLab profil
  • Prøv manuelt at registrere din egen SSH-nøgle ved hjælp af ssh-agent som documentedearlier i dette dokument
  • Prøv at fejlrette den forbindelse ved at køre ssh -Tv [email protected](udskift example.com med din GitLab domæne)