- 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.,
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.
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]"
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:
-
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.
- Naviger til
eller det lokale GitLab eksempel URL-adresse, og logg på.,
- Velg avataren din i øvre høyre hjørne, og klikk på Innstillinger
- Klikk SSH-Nøkler.
- Lim den offentlige nøkkelen som du kopierte inn Tasten tekst-boksen.
- sørge for at din nøkkel inkluderer et beskrivende navn i Tittel-boksen, som for eksempel Arbeid Laptop orHome Arbeidsstasjon.
- Ta en (valgfritt) utløpsdato for den tasten under «Opphører» – delen. (Introdusert i GitLab 12.9.)
- 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.
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):
– >
ssh -T [email protected]
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.
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 ssh
i 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.
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]
(skifteexample.com
med din GitLab domene)