- Požadavky
- Možnosti pro SSH klíče
- Hodnocení stávající SSH klíče
- Generování nového páru klíčů SSH
- ED25519 SSH klíče
- SSH RSA klíče
- Společné kroky pro generování SSH páru klíčů
- RSA klíče a OpenSSH od verze 6,5 až 7.,8
- Přidávání SSH klíč k vaší GitLab účet
- Dvě-faktor Autentizace (2FA)
- Testování, že je vše nastaveno správně
- Práce s non-výchozí SSH páru klíčů cesty
- Za-úložiště SSH klíče
- Více účtů na jednom GitLab instance
- Nasazení klíče
- Aplikace
- Zatmění
- SSH na GitLab server
- Možnosti pro Microsoft Windows
- Odstraňování problémů
Git je distribuovaný systém pro správu verzí, který znamená, že můžete pracovat lokálně.,Kromě toho můžete také sdílet nebo“ tlačit “ změny na jiné servery.GitLab podporuje bezpečnou komunikaci mezi Git a jeho servery pomocí SSH klíčů.
protokol SSH poskytuje toto zabezpečení a umožňuje vám autentizovat vzdálený server theGitLab, aniž byste pokaždé zadali své uživatelské jméno nebo heslo.
Tato stránka vám pomůže nakonfigurovat zabezpečené SSH klíče, které můžete použít k pomoci secureconnections do repozitářů GitLab.
- Pokud potřebujete informace o vytváření SSH klíčů, začněte s našimi možnostmi pro SSH klíče.,
- Pokud máte klíče SSH určené pro váš účet GitLab, možná vás bude zajímat práce s non-default SSH key pair paths.
- Pokud již máte pár klíčů SSH, můžete přejít na to, jak můžete do svého účtu GitLab přidat klíč SSH.
Požadavky
Na podporu SSH, GitLab vyžaduje instalaci OpenSSH klienta, whichcomes pre-nainstalovány na GNU/Linux a macOS, stejně jako na Windows 10.
ujistěte se, že váš systém obsahuje SSH verzi 6.5 nebo novější, protože to vylučujeexistuje nyní nezabezpečené schéma podpisu MD5., Následující příkaz vrátí verzi ofSSH nainstalována na vašem systému:
ssh -V
Zatímco GitLab nepodporuje instalaci na Microsoft Windows,můžete nastavit SSH klíče nastavit Windows jako klienta.
možnosti pro SSH klíče
GitLab podporuje použití kláves RSA, DSA, ECDSA a ED25519.
- GitLab má zastaralé DSA klíče v GitLabu 11.0.
- jak je uvedeno v praktické kryptografii s Go, bezpečnostní otázky týkající se DSA se vztahují také na ECDSA.,
naše dokumentace se proto zaměřuje na použití kláves ED25519 a RSA.
Administrátoři mohou omezit, které klíče by měly být povoleny a jejich minimální délky.
Zkontrolujte stávající SSH klíče
Pokud máte existující SSH klíče, můžete je použít k zabezpečení spojení s Gitlabrepository., Ve výchozím nastavení jsou klíče SSH v systémech Linux a macOS uloženy v domovském adresáři uživatele v podadresáři .ssh/
. Následující tabulka obsahuje výchozí názvy souborů pro každý algoritmus SSH klíče:
pro doporučení viz možnosti pro SSH klíče.
generování nové dvojice klíčů SSH
Chcete-li vytvořit:
- klíč ED25519, přečtěte si klávesy ED25519 SSH.
- RSA klíč, číst RSA SSH klíče.
ED25519 SSH klíče
kniha Praktická Kryptografie S Gosuggests, že ED25519 klíče jsou bezpečnější a výkonnější než RSA klíče.,
Jak OpenSSH 6.5 představil ED25519 SSH klíče v roce 2014, měly by být k dispozici na jakémkoli aktuálnímoperačním systému.
můžete vytvářet a konfigurovat ED25519 klíče s následujícím příkazem:
ssh-keygen -t ed25519 -C "<comment>"
-C
vlajky, s citoval komentář jako e-mailovou adresu, je to volitelný způsob, jak označit své SSH klíče.
zobrazí se odpověď podobná:
Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Pro vedení, pokračovat do společné kroky.,
SSH RSA klíče
Pokud používáte RSA klíče pro SSH, americký Národní Institut pro Standardy a Technologie recommendsthat použijete klíč velikosti alespoň 2048 bits.By default, ssh-keygen
příkaz vytvoří 1024-bit RSA klíč.,
můžete vytvořit a konfigurovat RSA klíč s následující příkaz, nahrazení, pokud je to žádoucí pro minimální doporučená velikost klíče 2048
:
ssh-keygen -t rsa -b 2048 -C "[email protected]"
-C
vlajky, s citoval komentář jako e-mailovou adresu, je to volitelný způsob, jak označit své SSH klíče.
zobrazí se odpověď podobná:
Generating public/private rsa key pair.Enter file in which to save the key (/home/user/.ssh/id_rsa):
Pro vedení, pokračovat do společné kroky.
Společné kroky pro generování SSH páru klíčů
Ať už jste vytváření ED25519 nebo RSA klíč, co jste začali s ssh-keygen
příkaz.V tomto bodě, uvidíte následující zprávy v příkazovém řádku (pro ED25519 klíče):
Generating public/private ed25519 key pair.Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Pokud nemáte již mít SSH páru klíčů a nejsou generování nasadit klíč,přijměte navrhovaný soubor a adresář. Váš klient SSH používávýsledný pár klíčů SSH bez další konfigurace.,
Alternativně můžete nový pár klíčů SSH uložit na jiné místo.Můžete přiřadit adresář a název souboru podle vašeho výběru.Tento pár klíčů SSH můžete také věnovat konkrétnímu hostiteli.
Po přiřazení souboru uložit váš SSH klíč, můžete nastavit upa přístupové heslo pro SSH klíč:
Enter passphrase (empty for no passphrase):Enter same passphrase again:
Pokud je úspěšný, uvidíte potvrzení, kde ssh-keygen
commandsaved své identifikace a soukromý klíč.,
v případě potřeby, můžete aktualizovat přístupové heslo s následující příkaz:
ssh-keygen -p -f /path/to/ssh_key
RSA klíče a OpenSSH od verze 6.5 na 7,8
Před OpenSSH 7.8, default public key fingerprint RSA klíče byla založená na MD5,a je proto nejistá.
Pokud je vaše verze OpenSSH leží mezi verze 6.5 na verzi 7.8 (včetně),spusťte ssh-keygen
-o
možnost uložit svého soukromého SSH klíče ve více secureOpenSSH formátu.,
Pokud již máte pár klíčů RSA SSH, který chcete použít s GitLab, zvažte jeho upgraduvyužijte bezpečnější formát šifrování hesla. Můžete tak učinit pomocí následujícího příkazu:
ssh-keygen -o -f ~/.ssh/id_rsa
Případně, můžete vygenerovat nový klíč RSA s více bezpečné šifrování formátu s následujícím příkazem:
ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
ssh-keygen
man stránky, ED25519 již šifruje klíče na více secureOpenSSH formátu.,přidání klíče SSH do účtu GitLab
nyní můžete zkopírovat klíč SSH, který jste vytvořili, do svého účtu GitLab. Postupujte takto:
-
zkopírujte veřejný klíč SSH na místo, které ukládá informace v textovém formátu.,Následující volby ukládá informace pro ED25519 klíče k clipboardfor poznamenal operační systém:
macOS:
pbcopy < ~/.ssh/id_ed25519.pub
Linux (vyžaduje
xclip
balíček):xclip -sel clip < ~/.ssh/id_ed25519.pub
Git Bash v systému Windows:
cat ~/.ssh/id_ed25519.pub | clip
Pokud používáte RSA klíč, náhradní odpovídajícím způsobem.
- přejděte na
nebo místní adresu URL instance GitLab a přihlaste se.,
- vyberte avatar v pravém horním rohu a klikněte na Nastavení
- klikněte na klávesy SSH.
- vložte veřejný klíč, který jste zkopírovali do textového pole klíče.
- ujistěte se, že váš klíč obsahuje popisný název v záhlaví textového pole, jako je pracovní notebook nebo pracovní stanice.
- obsahuje (volitelné) datum vypršení platnosti klíče v části“ vyprší v části“. (Představeno v GitLabu 12.9.)
- klikněte na tlačítko Přidat klíč.
SSH klíče, které“ vypršely “ pomocí tohoto postupu, jsou platné v pracovních postupech GitLab.,Vzhledem k tomu,že datum vypršení platnosti nakonfigurované GitLab není zahrnuto do samotného klíče SSH, můžete podle potřeby stále exportovat veřejné klíče SSH.
ssh-ed25519
(nebo ssh-rsa
) a končí s vaší e-mailovou adresu.dvoufaktorová autentizace (2FA)
můžete nastavit dvoufaktorovou autentizaci (2FA) forGit přes SSH.,
Testování, že je vše nastaveno správně
test, zda je váš SSH klíč byl přidán správně spustit followingcommand v terminálu (nahradit gitlab.com
s doménou vaší GitLab instance):
ssh -T [email protected]
při prvním připojení k GitLab přes SSH, je třeba ověřit, theauthenticity GitLab hostitele, který se připojujete.Například při připojení k GitLab.com, odpověď yes
přidat GitLab.,com do seznamu důvěryhodných hostitelů:
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.
po přidání do seznamu známých hostitelů byste měli znovu ověřit autenticitu hostitele GitLab. Spusťte výše uvedený commandagain a měli byste obdržet přivítání na GitLab, @username
! zpráva.,
Pokud se uvítací zpráva nezobrazí, můžete vyřešit problém tím, že běží ssh
v upovídaném režimu pomocí následujícího příkazu:
ssh -Tvvv [email protected]
Práce s non-výchozí SSH páru klíčů cesty
Pokud jste použili jiné než výchozí cesta k souboru pro vaše GitLab páru klíčů SSH,konfigurace SSH klienta tak, aby váš GitLab soukromý SSH klíč.
tyto změny provést, spusťte následující příkazy:
eval $(ssh-agent -s)ssh-add <path to private SSH key>
Nyní uložit toto nastavení do ~/.ssh/config
soubor., Dva examplesfor SSH klíče věnován GitLab jsou uvedeny zde:
# GitLab.comHost gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab_com_rsa# Private GitLab instanceHost gitlab.company.com Preferredauthentications publickey IdentityFile ~/.ssh/example_com_rsa
Veřejné SSH klíče musí být jedinečné pro GitLab, jak se vázat na váš účet.Váš SSH klíč je jediný identifikátor, který máte při tlačení kódu přes SSH, proto je třeba jednoznačně mapovat pro jednoho uživatele.,
Za-úložiště SSH klíče
Pokud chcete použít různé klíče, v závislosti na úložiště jste workingon, můžete použít následující příkaz, zatímco uvnitř úložiště:
git config core.sshCommand "ssh -o IdentitiesOnly=yes -i ~/.ssh/private-key-filename-for-this-repository -F /dev/null"
Tento nemá používat SSH Agenta a vyžaduje alespoň Git 2.10.
více účtů na jedné instanci GitLab
metoda per-repository také funguje pro použitímnožství účtů v rámci jedné instance GitLab.
alternativně je možné hostitelům přímo přiřadit aliasy v~.ssh/config
., SSH a potažmo Git nedokáže přihlásit, pokud tam isan IdentityFile
nachází mimo Host
blok .ssh/config
. Tento isdue, jak SSH montuje IdentityFile
položky a není změnil podmínku pro druhou část IdentitiesOnly
yes
. IdentityFile
položky by měly poukazovat na soukromý klíč dvojice klíčů SSH.
Host
aliasy jsou definovány jako user_1.gitlab.com
user_2.gitlab.com
pro efektivitu a transparentnost., Pokročilé configurationsare obtížnější udržet; použití tohoto typu alias usnadňuje tounderstand při použití jiných nástrojů, jako je git remote
sub-příkazy. SSHwould pochopit libovolný řetězec jako Host
alias tím Tanuki1
Tanuki2
,přesto dává velmi malý kontext, kde se bod, bude také pracovat.,Klonování gitlab
úložiště obvykle vypadá takto:
git clone [email protected]:gitlab-org/gitlab.git
klonovat to pro user_1
, nahradit gitlab.com
s SSH alias user_1.gitlab.com
:
git clone git@<user_1.gitlab.com>:gitlab-org/gitlab.git
Opravit dříve klonovaných úložiště pomocí git remote
příkaz.
níže uvedený příklad předpokládá, že vzdálené úložiště je aliasováno jako origin
.,
git remote set-url origin git@<user_1.gitlab.com>:gitlab-org/gitlab.git
Nasazení klíče
Přečtěte si dokumentaci na Nasazení Klíče.
aplikace
Eclipse
Pokud používáte EGit, můžete do Eclipse přidat klíč SSH.
SSH na GitLab server
GitLab integruje do systému-nainstalované SSH daemon, určení uživatele(obvykle s názvem git
), jehož prostřednictvím všechny žádosti o přístup jsou zpracovány. Usersconnecting na GitLab server přes SSH jsou identifikovány jejich SSH klíč namísto svého uživatelského jména.,
SSH klientské operace prováděné na serveru GitLab jsou prováděny jako totouživatel. I když je možné upravit konfiguraci SSH pro tohoto uživatele,např. poskytnout privátní SSH klíč k ověření těchto požadavků, to practiceis není podporován a důrazně se nedoporučuje, jak to prezentuje significantsecurity rizika.
GitLab proces kontroly zahrnuje kontrolu tohoto stavu, a nasměruje vás v tomto oddílu, pokud váš server je nakonfigurován jako je tento, například:
Odstranit vlastní konfiguraci, jakmile jste schopni., Tyto přizpůsobení nejsou výslovně podporovány a mohou kdykoli přestat pracovat.
Volby pro Microsoft Windows
Pokud používáte Windows 10, Windows Subsystém pro Linux (WSL), a jeho poslední WSL 2 verze,podpora instalace různých Linuxových distribucí, které obsahují Git a SSH klientů.
pro aktuální verze systému Windows můžete také nainstalovat klienty Git a SSH withGit pro Windows.,
Alternativní nástroje patří:
- Cygwin
- PuttyGen
Odstraňování problémů
Pokud na Git clone budete vyzváni pro heslo, jako je [email protected]'s password:
něco je špatně s vaší nastavení SSH.,
- Zajistit, že budete vygenerování páru klíčů SSH správně a přidal veřejnost SSHkey na svůj GitLab profil
- Zkuste ruční registraci vaší privátní SSH klíč pomocí
ssh-agent
jako documentedearlier v tomto dokumentu - ladění připojení spuštěním
ssh -Tv [email protected]
(nahrazeníexample.com
s GitLab domény)