• exigences
  • Options pour les clés SSH
  • examiner les clés SSH existantes
  • générer une nouvelle paire de clés SSH
    • ED25519 clés SSH
    • RSA clés SSH
    • étapes communes pour générer une paire de clés SSH
    • OpenSSH des versions 6.5 à 7.,8
  • ajouter une clé SSH à votre compte GitLab
  • authentification à deux facteurs (2FA)
  • tester que tout est correctement configuré
  • travailler avec des chemins de paires de clés SSH non par défaut
  • clés SSH par référentiel
  • plusieurs comptes sur une seule instance GitLab
  • ssh sur le serveur Gitlab
    • options pour Microsoft Windows
  • dépannage
  • git est un système de contrôle de version distribué, ce qui signifie que vous pouvez travailler localement.,En outre, vous pouvez également partager ou « pousser” vos modifications à d’autres serveurs.GitLab prend en charge la communication sécurisée entre Git et ses serveurs à l’aide de clés SSH.

    le protocole SSH fournit cette sécurité et vous permet de vous authentifier auprès du serveur distant gitlab sans fournir votre nom d’utilisateur ou votre mot de passe à chaque fois.

    cette page peut vous aider à configurer les clés SSH sécurisées que vous pouvez utiliser pour aider secureconnections aux référentiels GitLab.

    • Si vous avez besoin d’informations sur la création de clés SSH, commencez par nos options pour les clés SSH.,
    • Si vous avez des clés SSH dédiées à votre compte GitLab, vous pouvez être intéressé à travailler avec des chemins de paire de clés SSH non par défaut.
    • Si vous avez déjà une paire de clés SSH, vous pouvez aller à comment ajouter une clé SSH à votre compte GitLab.

    exigences

    pour prendre en charge SSH, GitLab nécessite l’installation du client OpenSSH, qui est préinstallé sur GNU / Linux et macOS, ainsi que sur Windows 10.

    assurez-vous que votre système inclut SSH version 6.5 ou plus récente, car cela exclut le schéma de signature MD5 maintenant non sécurisé., La commande suivante renvoie la version ofSSH installée sur votre système:

    ssh -V

    bien que GitLab ne prenne pas en charge L’installation sur Microsoft Windows,vous pouvez configurer des clés SSH pour configurer Windows en tant que client.

    Options pour les clés SSH

    GitLab prend en charge L’utilisation des clés RSA, DSA, ECDSA et ED25519.

    • GitLab a des clés DSA obsolètes dans GitLab 11.0.
    • comme indiqué dans la cryptographie pratique avec Go, les problèmes de sécurité liés à la DSA s’appliquent également à L’ECDSA.,
    notela documentation disponible suggère que ED25519 est plus sécurisé. Si vous utilisez une clé RSA, Le US National Institute of Science and Technology dans la Publication 800-57 Part 3 (PDF) recommande une taille de clé d’au moins 2048 bits.

    Par conséquent, notre documentation se concentre sur L’utilisation des clés ED25519 et RSA.

    Les administrateurs peuvent restreindre les clés qui doivent être autorisées et leurs longueurs minimales.

    vérifiez les clés SSH existantes

    Si vous avez des clés SSH existantes, vous pourrez peut-être les utiliser pour sécuriser les connexions avec GitLabrepositories., Par défaut, les clés SSH sur les systèmes Linux et macOS sont stockées dans le répertoire personnel de l’utilisateur,dans le sous-répertoire .ssh/. Le tableau suivant inclut les noms de fichiers par défaut pour chaque algorithme de clé SSH:

    pour les recommandations, voir options pour les clés SSH.

    générer une nouvelle paire de clés SSH

    Si vous souhaitez créer:

    • Une clé ED25519, lisez les clés SSH ED25519.
    • Une clé RSA, lire les clés RSA SSH.

    ed25519 clés SSH

    Le Livre practical Cryptography With Gosuggère que les clés ED25519 sont plus sécurisées et performantes que les clés RSA.,

    comme OpenSSH 6.5 a introduit les clés SSH ED25519 en 2014, elles devraient être disponibles sur n’importe quel système fonctionnant actuellement.

    Vous pouvez créer et configurer un ED25519 clé avec la commande suivante:

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

    Le -C drapeau, avec une cité commentaire comme une adresse de courriel, est une façon optionnelle pour étiqueter vos clés SSH.

    Tu auras une réponse de ce type:

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

    Pour les conseils, passez à la démarche commune.,

    clés RSA SSH

    Si vous utilisez des clés RSA pour SSH, le National Institute of Standards and Technology des États-Unis recommande que vous utilisiez une taille de clé d’au moins 2048 bits.By par défaut, la commandessh-keygen crée une clé RSA 1024 bits.,

    Vous pouvez créer et configurer une clé RSA avec la commande suivante, en remplaçant si vous le souhaitez la taille de clé minimale recommandée de 2048:

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

    l’indicateur -C, avec un commentaire cité tel qu’une adresse e-mail, est un moyen facultatif d’étiqueter vos clés SSH.

    Tu auras une réponse de ce type:

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

    Pour les conseils, passez à la démarche commune.

    notesi vous avez OpenSSH version 7.,8 ou moins, considérez les problèmes associésavec l’encodage.

    étapes communes pour générer une paire de clés SSH

    que vous créiez une clé ED25519 ou une clé RSA, vous avez commencé avec le ssh-keygen command.At ce point, vous verrez le message suivant dans la ligne de commande (pour les clés ED25519):

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

    Si vous n’avez pas déjà de paire de clés SSH et que vous ne générez pas de clé de déploiement,acceptez le fichier et le répertoire suggérés. Votre client SSH utilise la paire de clés SSH résultante sans configuration supplémentaire.,

    Vous pouvez également enregistrer la nouvelle paire de clés SSH dans un emplacement différent.Vous pouvez attribuer le répertoire et le nom de fichier de votre choix.Vous pouvez également dédier cette paire de clés SSH à un hôte spécifique.

    Après avoir assigné un fichier pour enregistrer votre clé SSH, vous pouvez configurer une phrase secrète pour votre clé SSH:

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

    En cas de succès, vous verrez la confirmation de l’endroit où la commandessh-keygen a enregistré votre identification et votre clé privée.,

    en cas de besoin, vous pouvez mettre à jour la phrase secrète avec la commande suivante:

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

    clés RSA et OpenSSH des versions 6.5 à 7.8

    avant OpenSSH 7.8, L’empreinte de clé publique par défaut pour les clés RSA était

    Si votre version D’OpenSSH se trouve entre la version 6.5 et la version 7.8 (incluse),exécutezssh-keygen avec l’option-o pour enregistrer vos clés SSH privées au format plus secureOpenSSH.,

    Si vous avez déjà une paire de clés RSA SSH à utiliser avec GitLab, envisagez de mettre à niveau itto pour utiliser le format de cryptage de mot de passe plus sécurisé. Vous pouvez le faire avec la commande suivante:

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

    Sinon, vous pouvez générer une nouvelle clé RSA avec le plus sécurisé de cryptage format avec la commande suivante:

    ssh-keygen -o -t rsa -b 4096 -C "[email protected]"
    noteAs indiqué dans le ssh-keygen page de man, ED25519 déjà crypte clés pour le plus secureOpenSSH format.,

    ajout d’une clé SSH à votre compte GitLab

    Vous pouvez maintenant copier la clé SSH que vous avez créée sur votre compte GitLab. Pour ce faire, procédez comme suit:

    1. Copiez votre clé SSH publique dans un emplacement qui enregistre les informations au format texte.,Les options suivantes enregistre les informations pour ED25519 clés de la clipboardfor le célèbre système d’exploitation:

      macOS:

      pbcopy < ~/.ssh/id_ed25519.pub

      Linux (nécessite la balise xclip package):

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

      Git Bash sous Windows:

      cat ~/.ssh/id_ed25519.pub | clip

      Si vous utilisez une clé RSA, substitut en conséquence.

    2. accédez à ou à l’URL de votre instance GitLab locale et connectez-vous.,
    3. Sélectionnez votre avatar dans le coin supérieur droit, puis cliquez sur Paramètres
    4. Cliquez sur les Clés SSH.
    5. collez la clé publique que vous avez copiée dans la zone de texte clé.
    6. assurez-vous que votre clé inclut un nom descriptif dans la zone de texte Titre, tel que Work Laptop ouhome Workstation.
    7. incluez une date d’expiration (facultative) pour la clé sous la section « expire à”. (Introduit dans GitLab 12.9.)
    8. Cliquez sur le bouton Ajouter une clé.

    Les clés SSH qui ont « expiré” à l’aide de cette procédure sont valides dans les workflows GitLab.,Comme la date d’expiration configurée par GitLab n’est pas incluse dans la clé SSH elle-même,vous pouvez toujours exporter des clés SSH publiques si nécessaire.

    notesi vous avez copié manuellement votre clé SSH publique, assurez-vous d’avoir copié la clé entière en commençant par ssh-ed25519 (ou ssh-rsa) et en terminant par votre adresse e-mail.

    l’Authentification à Deux facteurs (2FA)

    Vous pouvez configurer l’authentification à deux facteurs (2FA) forGit sur SSH.,

    tester que tout est correctement configuré

    pour tester si votre clé SSH a été ajoutée correctement, exécutez la commande suivante dans votre terminal (remplacezgitlab.com par le domaine de votre instance GitLab):

    la première fois que vous vous connectez à Gitlab via SSH, vous devez vérifier l’authenticité de L’hôte Gitlab auquel vous vous connectez.Par exemple, lors de la connexion à GitLab.com, répondez yes pour ajouter GitLab.,avec la liste des hôtes de confiance:

    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, consultez thessh clés d’hôte empreintes digitales, section pour vous assurer que vous vous connectez au bon serveur. Par exemple, vous pouvez voir l’empreinte digitale de la clé ECDSA indiquée ci-dessus dans la section liée.

    Une fois ajouté à la liste des hôtes connus, vous devez valider à nouveau l’authenticité de L’hôte GitLab. Exécutez la commande ci-dessus, et vous devriez recevoir un Welcome to GitLab, @username! message.,

    Si le message de bienvenue n’apparaît pas, vous pouvez résoudre le problème en exécutantsshen mode verbeux avec la commande suivante:

    ssh -Tvvv [email protected]

    travaillant avec des chemins de paire de clés SSH non par défaut

    Si vous-Chemin de fichier par défaut pour votre paire de clés gitlab SSH,configurez votre client SSH pour pointer vers votre clé SSH privée gitlab.

    Pour effectuer ces changements, exécutez les commandes suivantes:

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

    Maintenant, enregistrer ces paramètres dans la ~/.ssh/config fichier., Deux exemples de clés SSH dédiées à GitLab sont présentés ici:

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

    Les clés SSH publiques doivent être uniques à GitLab, car elles se lient à votre compte.Votre clé SSH est le seul identifiant que vous avez lorsque vous poussez du code via SSH,c’est pourquoi il doit être mappé de manière unique à un seul utilisateur.,

    clés SSH par référentiel

    Si vous souhaitez utiliser différentes clés en fonction du référentiel sur lequel vous travaillez, vous pouvez lancer la commande suivante à l’intérieur de votre référentiel:

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

    cela n’utilise pas L’Agent SSH et nécessite au moins Git 2.10.

    plusieurs comptes sur une seule instance GitLab

    la méthode per-repository fonctionne également pour utiliser plusieurs comptes dans une seule instance GitLab.

    alternativement, il est possible d’attribuer directement des alias aux hôtes dans~.ssh/config., SSH et, par extension, Git ne parvient pas à se connecter s’il existe un IdentityFile défini en dehors d’un bloc Host dans .ssh/config. Ceci est dû à la façon dont SSH assemble les entréesIdentityFile et n’est pas modifié par la définition deIdentitiesOnly enyes. IdentityFile les entrées doivent pointer vers la clé privée d’une paire de clés SSH.

    remarque: l’exemple Host alias sont définis comme user_1.gitlab.com etuser_2.gitlab.com pour plus d’efficacité et de transparence., Les configurations avancées sont plus difficiles à maintenir; l’utilisation de ce type d’alias facilite la compréhension lors de l’utilisation d’autres outils tels que les sous-commandes git remote. SSHwould comprendrait n’importe quelle chaîne comme un alias Host ainsi Tanuki1 Et Tanuki2,bien que donnant très peu de contexte quant à leur point, fonctionnerait également.,

    le Clonage de la balise gitlab référentiel normalement ressemble à ceci:

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

    Pour le clone de user_1, remplacez gitlab.com avec le SSH alias user_1.gitlab.com:

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

    Fixer un déjà cloné référentiel à l’aide de la balise git remote commande.

    L’exemple ci-dessous suppose que le dépôt distant est l’alias origin.,

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

    Déployer des touches

    Lire la documentation relative à Déployer des Touches.

    Applications

    Eclipse

    Si vous utilisez EGit, vous pouvez ajouter votre clé SSH pour Eclipse.

    SSH sur le serveur GitLab

    GitLab s’intègre au démon SSH installé sur le système, désignant un utilisateur(généralement nommégit) à travers lequel toutes les demandes d’accès sont traitées. Les utilisateurs se connectant au serveur GitLab via SSH sont identifiés par leur clé SSH au lieu de leur nom d’utilisateur.,

    Les opérations client SSH effectuées sur le serveur GitLab sont exécutées en tant que thisuser. Bien qu’il soit possible de modifier la configuration SSH pour que cet utilisateur,par exemple, fournisse une clé SSH privée pour authentifier ces demandes, cette pratique n’est pas prise en charge et est fortement déconseillée car elle présente des risques de sécurité importants.

    le processus de vérification GitLab inclut une vérification de cette condition et vous dirige vers cette section si votre serveur est configuré comme ceci, par exemple:

    supprimez la configuration personnalisée dès que vous le pouvez., Ces personnalisationsont explicitement non pris en charge et peuvent cesser de fonctionner à tout moment.

    Options pour Microsoft Windows

    Si vous utilisez Windows 10, le sous-système Windows Pour Linux (WSL) et sa dernière version WSL 2 prennent en charge l’installation de différentes distributions Linux, notamment les clients Git et SSH.

    pour les versions actuelles de Windows, vous pouvez également installer les clients Git et SSH avec git pour Windows.,

    Les outils alternatifs incluent:

    • Cygwin
    • PuttyGen

    dépannage

    Si sur git clone vous êtes invité à entrer un mot de passe comme [email protected]'s password:quelque chose ne va pas avec votre configuration SSH.,

    • assurez-vous que vous avez généré correctement votre paire de clés SSH et ajouté la clé SSH publique à votre profil GitLab
    • essayez d’enregistrer manuellement votre clé SSH privée en utilisant ssh-agent comme documentéplus tôt dans ce document
    • essayez de déboguer la connexion en 79845e1769″>avec votre domaine Gitlab)