- 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.,
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.
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]"
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:
-
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.
- Naviger til
eller din lokale GitLab-instansadresse, og log ind.,
- vælg din avatar i øverste højre hjørne, og klik på Indstillinger
- Klik på SSH-taster.
- indsæt den offentlige nøgle, som du kopierede, i tekstboksen nøgle.
- sørg for, at din nøgle indeholder et beskrivende navn i tekstboksen Titel, f.eks.
- Medtag en (valgfri) udløbsdato for nøglen under “udløber ved” sektionen. (Introduceret i GitLab 12.9.)
- 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.
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):
ssh -T [email protected]
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.
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 ssh
i ‘ 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.
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]
(udskiftexample.com
med din GitLab domæne)