• követelmények
  • SSH keys
  • meglévő SSH keys
  • Új SSH kulcspár létrehozása
    • ED25519 SSH keys
    • RSA SSH keys
    • közös lépések egy SSH kulcspár létrehozásához
    • RSA kulcsok és OpenSSH verziók 6.5 hogy 7.,8
  • Hozzátéve, egy SSH kulcs a GitLab fiók
  • a kéttényezős Hitelesítést (2FA)
  • a Vizsgálat minden van beállítva
  • Dolgozik, nem alapértelmezett SSH kulcs pár utak
  • Per-adattár SSH kulcsok
  • Több fiókot egyetlen GitLab például
  • Telepíteni kulcs
  • alkalm. – ok
    • Napfogyatkozás
  • SSH a GitLab server
    • Opciók Microsoft Windows
  • Hibaelhárítás

a Git egy elosztott verziókezelő rendszer, ami azt jelenti, hogy helyben munkát.,Ezenkívül megoszthatja vagy” megnyomhatja ” a módosításokat más szerverekre is.A GitLab támogatja a biztonságos kommunikációt a GIT és szerverei között SSH billentyűkkel.

az SSH protokoll biztosítja ezt a biztonságot, lehetővé teszi a theGitLab távoli kiszolgálóra történő hitelesítést anélkül, hogy minden alkalommal megadná felhasználónevét vagy jelszavát.

Ez az oldal segíthet a biztonságos SSH kulcsok konfigurálásában, amelyek segítségével segítheti a secureconnections-t a GitLab tárolókba.

  • Ha információra van szüksége az SSH kulcsok létrehozásával kapcsolatban, kezdje az SSH kulcsok lehetőségeivel.,
  • Ha van SSH kulcs a GitLab-fiókjához, akkor érdekelheti a NEM alapértelmezett SSH kulcspár-útvonalakkal való együttműködés.
  • ha már van SSH kulcspárja, akkor keresse meg, hogyan adhat hozzá SSH kulcsot a GitLab-fiókjához.

követelmények

az SSH támogatásához a GitLab megköveteli az OpenSSH kliens telepítését, amely előtelepítésre kerül a GNU/Linux és macOS rendszeren, valamint a Windows 10 rendszeren.

győződjön meg róla, hogy a rendszer tartalmazza az SSH 6.5-ös vagy újabb verzióját, mivel ez kizárja a most bizonytalan MD5 aláírási sémát., A következő parancs a rendszerére telepített ofSSH verzióját adja vissza:

ssh -V

míg a GitLab nem támogatja a Microsoft Windows telepítését,beállíthat SSH kulcsokat a Windows kliens beállításához.

SSH kulcsok beállításai

GitLab támogatja az RSA, DSA, ECDSA és ED25519 billentyűk használatát.

  • GitLab elavult DSA kulcsok GitLab 11.0.
  • amint azt a Go-val végzett gyakorlati kriptográfia is megjegyzi, a DSA-val kapcsolatos biztonsági kérdések az ECDSA-ra is vonatkoznak.,
noteAvailable dokumentáció azt sugallja, hogy az ED25519 biztonságosabb. Ha RSA kulcsot használ, az Egyesült Államok Nemzeti Tudományos és technológiai Intézete a kiadványban 800-57 3. rész (PDF) legalább 2048 bites kulcsméretet javasol.

ezért dokumentációnk az ED25519 és az RSA kulcsok használatára összpontosít.

A rendszergazdák korlátozhatják, hogy mely kulcsokat engedélyezzék, valamint azok minimális hosszát.

tekintse át a meglévő SSH kulcsokat

ha meglévő SSH kulcsai vannak, akkor használhatja őket a GitLabrepositories-szal való biztonságos kapcsolatok elősegítésére., Alapértelmezés szerint az SSH kulcsok Linux és macOS rendszereken a felhasználó saját könyvtárában,a .ssh/ alkönyvtárban kerülnek tárolásra. Az alábbi táblázat tartalmazza az egyes SSH kulcsalgoritmusok alapértelmezett fájlneveit:

az ajánlásokhoz lásd az SSH billentyűk beállításait.

Új SSH kulcspár létrehozása

Ha létre szeretne hozni:

  • ED25519 kulcs, olvassa el az ED25519 SSH kulcsokat.
  • egy RSA kulcs, olvassa el az RSA SSH kulcsokat.

ED25519 SSH keys

the book Practical Cryptography With Gosuggests that ED25519 keys are more secure and performant than RSA keys.,

mivel az OpenSSH 6.5 bevezette az ED25519 SSH kulcsokat 2014-ben, minden currentoperating rendszeren elérhetőnek kell lenniük.

létrehozhat és konfigurálhat egy ED25519 kulcsot a következő paranccsal:

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

a-C zászló, egy idézett megjegyzéssel, például e-mail címmel, opcionális módja az SSH kulcsok címkézésének.

hasonló választ fog látni:

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

útmutatásért folytassa a közös lépéseket.,

RSA SSH keys

ha RSA kulcsokat használ az SSH-hez, az amerikai Nemzeti Szabványügyi és Technológiai Intézet azt javasolja, hogy legalább 2048-as kulcsméretet használjon bits.By alapértelmezés szerint a ssh-keygen parancs 1024 bites RSA kulcsot hoz létre.,

az alábbi paranccsal létrehozhat és konfigurálhat egy RSA kulcsot, ha szükséges, helyettesítve a 2048:

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

-C a zászló, egy idézett megjegyzéssel, például e-mail címmel, opcionális módja az SSH kulcsok címkézésének.

hasonló választ fog látni:

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

útmutatásért folytassa a közös lépéseket.

megjegyzésha OpenSSH 7-es verziója van.,8 vagy az alábbiakban vegye figyelembe a kapcsolódó problémákatkódolással.

Közös lépéseket generál egy SSH kulcsot pár

Akár létrehozása ED25519 vagy RSA-kulcsot, már azzal kezdődött, hogy a ssh-keygen parancs.Ezen a ponton, akkor a következő üzenet jelenik meg a parancssorban (az ED25519 kulcs):

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

Ha nem már van egy SSH kulcs-pár pedig nem generál egy telepíteni kulcs,fogadja el a javasolt fájl, illetve könyvtár. Az Ön SSH kliense használjaaz eredményül kapott SSH kulcspár további konfiguráció nélkül.,

Alternatív megoldásként az új SSH kulcspárt más helyre mentheti.Hozzárendelheti a választott könyvtárat és fájlnevet.Azt is ajánlom, hogy SSH kulcspár egy adott gazda.

miután hozzárendelt egy fájlt az SSH kulcs mentéséhez, beállíthatjaegy jelszó az SSH kulcshoz:

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

ha sikeres, látni fogja annak megerősítését, hogy assh-keygen parancsokmegmentették az azonosítóját és a privát kulcsot.,

szükség esetén a következő paranccsal frissítheti a jelmondatot:

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

RSA kulcsok és OpenSSH a 6.5-7.8

verziókból az OpenSSH 7.8 előtt az RSA kulcsok alapértelmezett nyilvános kulcs ujjlenyomata MD5-en alapult, ezért bizonytalan.

Ha az OpenSSH verziója a 6.5-ös verziótól a 7.8-as verzióig terjed(inclusive), futtassa a ssh-keygen parancsot a -o opcióval, hogy a privát SSH kulcsokat biztonságosabb formátumban mentse.,

Ha már van RSA SSH kulcspárja a GitLab használatához, fontolja meg a frissítésta biztonságosabb jelszó titkosítási formátum használatához. Ezt a következő paranccsal teheti meg:

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

Alternatív megoldásként új RSA kulcsot hozhat létre a biztonságosabb titkosítási formátummal a következő paranccsal:

ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
noteas jegyezni assh-keygen man oldal, ed25519 már titkosítja kulcsokat a secureopenssh formátumban.,

SSH kulcs hozzáadása a GitLab fiókjához

most átmásolhatja a GitLab fiókjába létrehozott SSH kulcsot. Ehhez kövesse az alábbi lépéseket:

  1. másolja a nyilvános SSH billentyűt olyan helyre, amely szöveges formátumban menti az információkat.,A következő opciók menti információk ED25519 kulcs a clipboardfor az ismert operációs rendszer:

    macOS:

    pbcopy < ~/.ssh/id_ed25519.pub

    a Linux (előírja, hogy a xclip csomag):

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

    Git Bash Windows:

    cat ~/.ssh/id_ed25519.pub | clip

    Ha a RSA kulcsot helyettesítő adatbázisunkat.

  2. keresse meg a vagy a helyi GitLab példány URL-jét, majd jelentkezzen be.,
  3. válassza ki avatárját a jobb felső sarokban, majd kattintson a Beállítások
  4. kattintson az SSH billentyűkre.
  5. illessze be a másolt nyilvános kulcsot a kulcs szövegmezőbe.
  6. győződjön meg róla, hogy a kulcs tartalmaz egy leíró nevet a cím szövegmezőjében, például a munka Laptop vagy az otthoni munkaállomás.
  7. tartalmazza a kulcs (opcionális) lejárati idejét a “lejár a” szakaszban. (Bevezetve GitLab 12.9.)
  8. kattintson a kulcs hozzáadása gombra.

Az ezzel az eljárással “lejárt” SSH kulcsok a GitLab munkafolyamatokban érvényesek.,Mivel maga a GitLab által konfigurált lejárati dátum nem szerepel az SSH kulcsban, szükség szerint továbbra is exportálhat nyilvános SSH kulcsokat.

megjegyzésha manuálisan másolta a nyilvános SSH kulcsát, győződjön meg róla, hogy a teljes kulcsot a ssh-ed25519 (vagy ssh-rsa) kóddal másolta, majd az e-mail címével fejezte be.

kéttényezős hitelesítés (2FA)

beállíthatja a kéttényezős hitelesítést (2FA).,

annak tesztelése, hogy minden helyesen van-e beállítva

annak teszteléséhez, hogy az SSH kulcs helyesen lett-e hozzáadva, futtassa a következőtcommand a terminálon (cserélje ki a gitlab.com a GitLab példány domainjével):

amikor először csatlakozik a GitLab-hoz az SSH-n keresztül, ellenőriznie kell a GitLab gazdagép hitelességét, amelyhez csatlakozik.Például, ha csatlakozik GitLab.com, válasz yes GitLab hozzáadásához.,Coma megbízható házigazdák listája:

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.
GitLab.com, forduljon theSSH host keys ujjlenyomatok, szakasz, hogy megbizonyosodjon arról, hogy csatlakozik a megfelelő kiszolgálóhoz. Például láthatja az ECDSA kulcs ujjlenyomatát a fent látható linkelt szakaszban.

miután hozzáadta az Ismert gazdagépek listájához, ismét ellenőriznie kell a GitLab gazdagép hitelességét. Futtassa a fenti parancsotés fogadást kell kapnia a GitLab-ban, @username! üzenet.,

Ha az üdvözlő üzenet nem jelenik meg, lehet elhárítani a problémát futó ssha bőbeszédű üzemmódot a következő parancsot:

ssh -Tvvv [email protected]

Dolgozik, nem alapértelmezett SSH kulcs pár utak

Ha nem alapértelmezett elérési utat a GitLab SSH kulcs-pár,konfigurálnia kell az SSH kliens, hogy pont a GitLab privát SSH kulcs.

a módosítások végrehajtásához futtassa a következő parancsokat:

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

Most mentse el ezeket a beállításokat a ~/.ssh/config fájlba., Két példaa GitLab-nak szentelt SSH kulcsok itt láthatók:

# GitLab.comHost gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab_com_rsa# Private GitLab instanceHost gitlab.company.com Preferredauthentications publickey IdentityFile ~/.ssh/example_com_rsa

a nyilvános SSH kulcsoknak egyedinek kell lenniük a GitLab számára, mivel a fiókjához kötődnek.Az SSH-kulcs az egyetlen azonosító, amely akkor van, ha az SSH-n keresztül nyomja a kódot, ezért egyedi térképet kell készítenie egyetlen felhasználó számára.,

per-repository SSH keys

ha különböző kulcsokat szeretne használni attól függően, hogy az adattárban dolgozik, akkor a következő parancsot adhatja ki a tárolóban:

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

Ez nem használja az SSH ügynököt, és legalább 2.10 Git-t igényel.

Több fiók egyetlen GitLab példányon

A per-repository módszer is használhatómultiple fiókok egyetlen GitLab példányon belül.

Alternatív megoldásként közvetlenül hozzárendelhet álneveket a~.ssh/configgazdagépekhez., SSH és mellékesen a Git nem jelentkezik be, ha vanan IdentityFile a Host blokk .ssh/config. Ez annak köszönhető, hogy az SSH hogyan szerel össze IdentityFile bejegyzéseket, és nem változik a IdentitiesOnly yes. IdentityFile a bejegyzéseknek az SSH kulcspár privát kulcsára kell mutatniuk.

noteThe example Host az álnevek meghatározása: user_1.gitlab.com ésuser_2.gitlab.com a hatékonyság és az átláthatóság érdekében., A speciális konfigurációkat nehezebb fenntartani; az ilyen típusú alias használata megkönnyíti a tounderstand használatát más eszközök, például a git remote alparancsok használatakor. SSHwould értem string, mint egy Host alias így Tanuki1 vagy Tanuki2,annak ellenére, amely nagyon kis összefüggésben, mint ahol ők pont is működik.,

a gitlab tároló klónozása általában így néz ki:

a user_1 helyett gitlab.com az SSH alias user_1.gitlab.com:

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

javítson ki egy korábban klónozott tárolót a git remote paranccsal.

az alábbi példa feltételezi, hogy a távoli adattár neve origin.,

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

Deploy keys

olvassa el a Deploy Keys dokumentációját.

Alkalmazások

Eclipse

Ha EGit-et használ, hozzáadhatja az SSH kulcsot az Eclipse-hez.

SSH a GitLab kiszolgálón

GitLab integrálódik a rendszer által telepített SSH démonhoz, egy felhasználó kijelölésével (általában git), amelyen keresztül az összes hozzáférési kérelmet kezelik. Usersconnecting a GitLab szerver felett SSH azonosítják SSH kulcs helyett felhasználónevüket.,

a GitLab kiszolgálón végrehajtott SSH kliens műveletek így kerülnek végrehajtásra. Bár lehetséges, hogy módosítsa az SSH konfiguráció a felhasználó számára, például, hogy egy privát SSH kulcsot hitelesíteni ezeket a kéréseket, ez a gyakorlat nem támogatott, és erősen elriasztja, mivel jelentős biztonsági kockázatokat.

a GitLab check folyamat tartalmaz egy ellenőrzést erre a feltételre, és irányítja a youto-t erre a szakaszra, ha a kiszolgáló így van konfigurálva, például:

távolítsa el az egyéni konfigurációt, amint képes., Ezek a testreszabások kifejezetten nem támogatottak, és bármikor leállhatnak.

A Microsoft Windows opciói

Ha Windows 10 operációs rendszert futtat, a Windows Linux alrendszer (Wsl) és legújabb WSL 2 verziója támogatja a különböző Linux disztribúciók telepítését, beleértve a Git és SSH klienseket is.

A Windows jelenlegi verzióihoz a Git és SSH klienseket is telepítheti a withGit for Windows rendszerrel.,

az alternatív eszközök a következők:

  • Cygwin
  • PuttyGen

hibaelhárítás

Ha a Git klónon olyan jelszót kér, mint a[email protected]'s password:valami nincs rendben az SSH beállításával.,

  • annak Biztosítása, hogy amit létrehozott, az SSH kulcs pár helyesen, majd hozzátette, a nyilvános SSHkey a GitLab profil
  • Próbálja meg manuálisan, regisztráció a privát SSH kulcs a ssh-agent mint documentedearlier ebben a dokumentumban
  • Próbálja meg elhárítani a kapcsolat futó ssh -Tv [email protected](cseréje example.com a GitLab domain)