• Krav
  • Alternativer for SSH-nøkler
  • Vurdering av eksisterende SSH-nøkler
  • for å Generere en ny SSH-nøkkel-par
    • ED25519 SSH-nøkler
    • RSA SSH-nøkler
    • Vanlige trinnene for å generere en SSH-nøkkel-par
    • RSA-nøkler og OpenSSH fra versjoner 6,5-7.,8
  • for å Legge til en SSH-nøkkelen til GitLab konto
  • To-faktor Autentisering (2FA)
  • for å Teste at alt er riktig satt opp
  • Arbeide med ikke-standard SSH-nøkkel-par stier
  • Per-depotet SSH-nøkler
  • Flere kontoer på en enkel GitLab eksempel
  • Distribuere nøkler
  • Programmer
    • Eclipse
  • SSH på GitLab server
    • Alternativer for Microsoft Windows
  • Feilsøking

Git er et distribuert versjonskontrollsystem, som betyr at du kan jobbe lokalt.,I tillegg kan du også dele eller «push» endringene til andre servere.GitLab støtte for sikker kommunikasjon mellom Git og sine servere ved hjelp av SSH-nøkler.

SSH-protokollen gir dette trygghet og gir deg muligheten til å godkjenne theGitLab ekstern server uten å levere ditt brukernavn eller passord hver gang.

på Denne siden kan hjelpe deg med å konfigurere secure SSH-nøkler som du kan bruke til å hjelpe secureconnections å GitLab repositories.

  • Hvis du trenger informasjon om hvordan du oppretter SSH nøkler, start med våre alternativer for SSH-nøkler.,
  • Hvis du har SSH-nøkler dedikert til din GitLab konto, kan du være interessert i å Arbeide med ikke-standard SSH-nøkkel-par stier.
  • Hvis du allerede har en SSH-nøkkel-par, kan du gå til hvordan du kan legge til en SSH-nøkkelen til GitLab konto.

Krav

for Å støtte SSH, GitLab krever installasjon av OpenSSH-klient, whichcomes pre-installert på GNU/Linux og macOS, så vel som på Windows-10.

sørg for at systemet omfatter SSH versjon 6.5 eller nyere, som excludesthe nå usikre MD5 signatur ordningen., Den følgende kommandoen returnerer versjon ofSSH installert på systemet:

– >

ssh -V

Mens GitLab støtter ikke installasjon av Microsoft Windows,kan du sette opp SSH-tastene for å konfigurere Windows som en klient.

Alternativer for SSH-nøkler

GitLab støtter bruk av RSA, DSA, ECDSA og ED25519 tastene.

  • GitLab har avverget DSA-nøkler i GitLab 11.0.
  • Som nevnt i Praktisk Kryptografi Med Gå, sikkerhet problemstillinger knyttet til DSA gjelder også for ECDSA.,
noteAvailable dokumentasjon tyder på at ED25519 er mer sikker. Hvis du bruker en RSA-nøkkel, den AMERIKANSKE National Institute of Science and Technology i Publikasjonen 800-57 Del 3 (PDF) anbefaler en viktig størrelse på minimum 2048 bits.

Derfor, vår dokumentasjon fokuserer på bruk av ED25519 og RSA-nøkler.

Administratorer kan begrense hvilke taster som skal være tillatt og minimum deres lengder.

Gjennomgå eksisterende SSH-nøkler

Hvis du har eksisterende SSH-nøkler, du kan være i stand til å bruke dem til å hjelpe sikker tilkobling med GitLabrepositories., Standard SSH-nøkler på Linux og macOS-systemer er lagret i brukerens hjemmekatalog,i .ssh/ undermappe. Følgende tabell inneholder standard filnavn for hver SSH nøkkel algoritme:

For anbefalinger, kan du se alternativer for SSH-nøkler.

Generere en ny SSH-nøkkel-par

Hvis du vil opprette:

  • Et ED25519-tasten, kan du lese ED25519 SSH-nøkler.
  • En RSA-nøkkel, lese RSA SSH-nøkler.

ED25519 SSH-nøkler

boken Praktisk Kryptografi Med Gosuggests at ED25519 tastene er sikrere og mer effektivt enn RSA-nøkler.,

Som OpenSSH 6.5 introdusert ED25519 SSH-nøkler i 2014, og de bør være tilgjengelig på alle currentoperating system.

Du kan opprette og konfigurere en ED25519 nøkkel med følgende kommando:

– >

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

-C flagg, med en oppgitt kommentar for eksempel en e-postadresse, er en alternativ måte å merke dine SSH-nøkler.

vil Du se et svar som ligner på dette:

– >

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

For veiledning, kan du fortsette til den vanlige fremgangsmåten.,

RSA SSH-nøkler

Hvis du bruker RSA-nøkler for SSH, det AMERIKANSKE National Institute of Standards and Technology recommendsthat du bruke en nøkkel størrelse på minst 2048 bits.By standard ssh-keygen kommandoen oppretter en 1024-bit RSA-nøkkel.,

Du kan opprette og konfigurere en RSA-nøkkel med følgende kommando, som kan erstatte hvis det er ønskelig for de minste anbefalte tasten størrelse på 2048:

– >

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

-C flagg, med en oppgitt kommentar for eksempel en e-postadresse, er en alternativ måte å merke dine SSH-nøkler.

vil Du se et svar som ligner på dette:

– >

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

For veiledning, kan du fortsette til den vanlige fremgangsmåten.

noteIf du har OpenSSH versjon 7.,8 eller lavere, vurdere problemer associatedwith koding.

Vanlige trinnene for å generere en SSH-nøkkel-par

Enten du skal lage en ED25519 eller en RSA-nøkkel, du har begynt med ssh-keygen – kommandoen.På dette punktet, vil du se følgende melding i kommandolinjen (for ED25519 tastene):

– >

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økkel-par, og er ikke å generere et distribuere nøkkelen,godta det foreslåtte fil og katalog. Din SSH-klient usesthe som følge SSH-nøkkel-par uten ekstra konfigurasjon.,

Alternativt, kan du lagre den nye SSH-nøkkel-par i en annen plassering.Du kan tilordne katalog-og filnavn av ditt valg.Du kan også vie at SSH-tasten koble til en bestemt vert.

Etter at en fil for å lagre SSH-nøkkel, kan du angi upa-passordet for din SSH nøkkel:

– >

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

Hvis du lykkes, vil du se en bekreftelse på hvor ssh-keygen commandsaved din identifikasjon og privat nøkkel.,

Når det er nødvendig, kan du oppdatere passordet med følgende kommando:

– >

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

RSA-nøkler og OpenSSH fra versjoner av 6,5 7,8

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

Hvis din versjon av OpenSSH ligger mellom versjon 6.5-versjonen 7.8 (inkludert),kan du kjøre ssh-keygen med -o alternativet for å lagre din private SSH-nøkler i mer secureOpenSSH format.,

Hvis du allerede har en RSA-SSH-nøkkel-par for bruk med GitLab, bør du vurdere å oppgradere itto bruke mer sikkert passord kryptering format. Du kan gjøre det med følgende kommando:

– >

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

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

– >

ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
noteAs nevnt i ssh-keygen mann-side, ED25519 allerede krypterer nøklene til mer secureOpenSSH format.,

Legge til en SSH-nøkkelen til GitLab konto

Nå kan du kopiere den SSH-nøkkelen du opprettet til GitLab konto. For å gjøre dette, følger du disse trinnene:

  1. Kopiere offentlig SSH-nøkkelen til et sted som lagrer informasjon i tekst format.,Følgende alternativer lagrer informasjon for ED25519 nøklene til clipboardfor den kjente operativsystem:

    macOS:

    – >

    pbcopy < ~/.ssh/id_ed25519.pub

    Linux (krever xclip pakken):

    – >

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

    Git Bash på Windows:

    – >

    cat ~/.ssh/id_ed25519.pub | clip

    Hvis du bruker en RSA-nøkkel, erstatning tilsvarende.

  2. Naviger til eller det lokale GitLab eksempel URL-adresse, og logg på.,
  3. Velg avataren din i øvre høyre hjørne, og klikk på Innstillinger
  4. Klikk SSH-Nøkler.
  5. Lim den offentlige nøkkelen som du kopierte inn Tasten tekst-boksen.
  6. sørge for at din nøkkel inkluderer et beskrivende navn i Tittel-boksen, som for eksempel Arbeid Laptop orHome Arbeidsstasjon.
  7. Ta en (valgfritt) utløpsdato for den tasten under «Opphører» – delen. (Introdusert i GitLab 12.9.)
  8. Klikk Legg til nøkkel-knappen.

SSH-nøkler som har teksten «utgått» ved hjelp av denne prosedyren er gyldig i GitLab arbeidsflyter.,Som GitLab-konfigurert utløpsdato er ikke inkludert i SSH-tasten for seg selv,du kan fortsatt eksport offentlig SSH-nøkler som er nødvendig.

noteIf du manuelt har kopiert offentlig SSH-tasten kontroller at du har kopiert entirekey starter med ssh-ed25519 (eller ssh-rsa) og slutter med din e-postadresse.

To-faktor Autentisering (2FA)

Du kan sette opp to-faktor autentisering (2FA) forGit over SSH.,

– Testing som alt er satt opp riktig

for Å teste om din SSH nøkkel var lagt til på riktig måte, kan du kjøre followingcommand i din terminal (bytt gitlab.com med domenet ofyour GitLab eksempel):

– >

Den første gangen du kobler til GitLab via SSH, bør du kontrollere theauthenticity av GitLab vert som du kobler til.For eksempel, når du kobler til GitLab.com svar yes for å legge til GitLab.,com til listen over klarerte verter:

– >

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 kontakt theSSH vert tastene fingeravtrykk,delen for å sørge for at du er koblet til riktig server. For eksempel, du kan koke ECDSA key fingerprint vist ovenfor i de koblede delen.

Når du har lagt til i listen over kjente, allhers gud, du bør validere theauthenticity av GitLab vert, igjen. Kjøre over commandagain, og du vil motta en Velkomst til GitLab, @username! melding.,

Hvis velkommen meldingen ikke vises, kan du feilsøke problemet ved å kjøre sshi detaljert modus med følgende kommando:

– >

ssh -Tvvv [email protected]

Arbeide med ikke-standard SSH-nøkkel-par stier

Hvis du har brukt en ikke-standard filbane for din GitLab SSH-nøkkel-par,konfigurere din SSH-klient til å peke til din GitLab privat SSH-tasten.

for Å gjøre disse endringene, kan du kjøre følgende kommandoer:

– >

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

Nå kan du lagre disse innstillingene til ~/.ssh/config – filen., To examplesfor SSH-nøkler dedikert 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

Offentlig SSH-nøkler må være unik for GitLab, som de binder seg til kontoen din.Din SSH-nøkkelen er det bare identifikator som du har når du presser kode via SSH,det er derfor det er behov for å unikt kartet til en enkelt bruker.,

Per-depotet SSH-nøkler

Hvis du ønsker å bruke forskjellige tastene, avhengig av depotet du er workingon, kan du sende inn følgende kommando mens inne i depotet:

– >

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

Dette betyr ikke bruker SSH-Agent og krever minst Git 2.10.

Flere kontoer på en enkel GitLab eksempel

per-depotet metoden fungerer også for usingmultiple kontoer innen en enkelt GitLab eksempel.

Alternativt er det mulig å direkte tilordne aliaser til vertene i~.ssh/config., SSH, og i forlengelsen av, Git ikke klarer å logge på hvis det isan IdentityFile satt utenfor av en Host blokker i .ssh/config. Dette isdue til hvordan SSH setter sammen IdentityFile oppføringer og er ikke endret bysetting IdentitiesOnly til yes. IdentityFile oppføringer skal peke til privat nøkkel i en SSH-nøkkel-par.

obs! eksempel Host aliaser er definert som user_1.gitlab.com oguser_2.gitlab.com for effektivitet og åpenhet., Avansert configurationsare mer vanskelig å opprettholde, og ved å bruke denne type alias gjør det enklere tounderstand når du bruker andre verktøy, for eksempel git remote sub-kommandoer. SSHwould forstå en hvilken som helst streng som en Host alias dermed Tanuki1 og Tanuki2,til tross for å gi svært liten sammenheng med hensyn til hvor de peker, ville også fungere.,

Kloning gitlab depotet normalt ser ut som dette:

– >

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

for Å klone det for user_1, bytt gitlab.com med SSH alias user_1.gitlab.com:

– >

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

Fikse en tidligere klonet depotet ved å bruke git remote – kommandoen.

eksemplet nedenfor forutsetter at den eksterne depot er aliased som origin.,

– >

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

Distribuere nøkler

Les dokumentasjonen på Distribuere Nøkler.

Programmer

Eclipse

Hvis du bruker EGit, kan du legge til din SSH-nøkkelen til Eclipse.

SSH på GitLab server

GitLab integreres med systemet installert SSH-daemon, utpeke en bruker(vanligvis kalt git) der alle forespørsler om tilgang håndteres. Usersconnecting til GitLab server via SSH er identifisert med sine SSH nøkkel insteadof sitt brukernavn.,

SSH-klient operasjoner utført på GitLab server er utført som thisuser. Selv om det er mulig å endre SSH konfigurasjon for denne brukeren,for eksempel, gir en egen SSH-nøkkelen for å verifisere disse forespørslene av dette practiceis ikke støttes, og er sterkt frarådes på det presenterer significantsecurity risiko.

GitLab sjekk prosessen omfatter en sjekk for denne tilstanden, og leder youto denne delen hvis serveren er konfigurert som dette, for eksempel slik:

Fjern egendefinert konfigurasjon så snart du er i stand til., Disse customizationsare eksplisitt ikke støttes, og kan slutte å fungere når som helst.

Alternativer for Microsoft Windows

Hvis du kjører Windows 10, Windows Subsystem for Linux (WSL), og dens siste WSL 2-versjonen,støtter installasjon av forskjellige Linux-distribusjoner, som inkluderer Git og SSH-klienter.

For gjeldende versjoner av Windows, kan du også installere Git og SSH klienter withGit for Windows.,

Alternative verktøy inkluderer:

  • Cygwin
  • PuttyGen

Feilsøking

Hvis du er på Git clone du blir bedt om å angi et passord som [email protected]'s password:noe er galt med din SSH-oppsett.,

  • Sørge for at du har generert din SSH-nøkkel-par på riktig måte, og lagt til den offentlige SSHkey til GitLab profil
  • Prøv manuelt registrere din egen SSH-nøkkel ved hjelp av ssh-agent som documentedearlier i dette dokumentet
  • Prøv å avslutte tilkoblingen ved å kjøre ssh -Tv [email protected](skifte example.com med din GitLab domene)