• 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.,
noteAvailable dokumentace naznačuje, že ED25519 je bezpečnější. Pokud používáte klíč RSA, Americký Národní institut vědy a techniky v publikaci 800-57 Část 3 (PDF) doporučuje klíčovou velikost nejméně 2048 bitů.

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.

poznámkapokud máte verzi OpenSSH 7.,8 nebo níže zvažte problémy spojené s kódováním.

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]"
noteAs je uvedeno v 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:

  1. 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.

  2. přejděte na nebo místní adresu URL instance GitLab a přihlaste se.,
  3. vyberte avatar v pravém horním rohu a klikněte na Nastavení
  4. klikněte na klávesy SSH.
  5. vložte veřejný klíč, který jste zkopírovali do textového pole klíče.
  6. ujistěte se, že váš klíč obsahuje popisný název v záhlaví textového pole, jako je pracovní notebook nebo pracovní stanice.
  7. obsahuje (volitelné) datum vypršení platnosti klíče v části“ vyprší v části“. (Představeno v GitLabu 12.9.)
  8. 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.

poznámka: pokud jste ručně zkopírovat váš veřejný SSH klíč, ujistěte se, že jste zkopírovali entirekey začínající 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):

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.
poznámka: pro GitLab.com, poraďte se theSSH hostitele klíče, otisky prstů,části a zkontrolujte, zda se připojujete ke správnému serveru. Můžete například vidět otisk prstu ECDSA, který je uveden výše v propojené části.

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ěží sshv 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.

poznámka: příklad: Host aliasy jsou definovány jako user_1.gitlab.comuser_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)