La commande sudo
ou les privilèges élevés doivent-ils être utilisés avec Git ?
Vous ne devez pas utiliser la commande sudo
ou les privilèges élevés, tels que les autorisations d’administrateur, avec Git. Si vous avez une très bonne raison d’utiliser sudo
, assurez-vous que vous l’utilisez avec chaque commande (il est probablement préférable d’utiliser su
pour obtenir un interpréteur de commandes comme racine à ce stade). Si vous générez des clés SSH sans sudo
puis essayez d’utiliser une commande comme sudo git push
, vous n’utiliserez pas les mêmes clés que celles que vous avez générées.
Vérifier que vous vous connectez au serveur approprié
La frappe est contraignante, nous le savons tous. Faites attention à ce que vous tapez ; vous ne pouvez pas vous connecter à « githib.com » ou « guthub.com ». Dans certains cas, un réseau d’entreprise peut également provoquer des problèmes de résolution de l’enregistrement DNS.
Pour vous assurer que vous vous connectez au domaine approprié, vous pouvez entrer la commande suivante :
$ ssh -vT git@HOSTNAME
> OpenSSH_8.1p1, LibreSSL 2.7.3
> debug1: Reading configuration data /Users/YOU/.ssh/config
> debug1: Reading configuration data /etc/ssh/ssh_config
> debug1: /etc/ssh/ssh_config line 47: Applying options for *
> debug1: Connecting to HOSTNAME port 22.
La connexion doit être établie sur le port 22.
Utiliser toujours l’utilisateur « git »
Toutes les connexions, y compris celles des URL distantes, doivent être effectuées en tant qu’utilisateur « git ». Si vous essayez de vous connecter avec votre nom d’utilisateur GitHub Enterprise Server, l’opération échoue :
$ ssh -T GITHUB-USERNAME@HOSTNAME
> Permission denied (publickey).
Si votre connexion a échoué et que vous utilisez une URL distante avec votre nom d’utilisateur GitHub Enterprise Server, vous pouvez changer l’URL distante pour utiliser l’utilisateur « git ».
Vous devez vérifier votre connexion en tapant :
$ ssh -T git@HOSTNAME
> Hi USERNAME! You've successfully authenticated...
Vérifier que vous disposez d’une clé en cours d’utilisation
-
Ouvrez TerminalTerminalGit Bash.
-
Vérifiez que vous avez une clé privée générée et chargée dans SSH.
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566 $ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
Si vous avez installé GitHub Desktop, vous pouvez l’utiliser pour cloner des référentiels, sans utiliser de clés SSH.
-
Si vous utilisez Git Bash, activez ssh-agent :
# start the ssh-agent in the background $ eval "$(ssh-agent -s)" > Agent pid 59566
Si vous utilisez une autre invite de terminal, telle que Git pour Windows, activez ssh-agent :
# start the ssh-agent in the background $ eval $(ssh-agent -s) > Agent pid 59566
Remarque : Les commandes eval ci-dessus démarrent manuellement ssh-agent dans votre environnement. Ces commandes peuvent échouer si ssh-agent s’exécute déjà en tant que service système en arrière-plan. Si cela se produit, nous vous recommandons de consulter la documentation appropriée pour votre environnement.
-
Vérifiez que vous avez une clé privée générée et chargée dans SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Ouvrez TerminalTerminalGit Bash.
-
Vérifiez que vous avez une clé privée générée et chargée dans SSH.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
La commande ssh-add
doit afficher une longue chaîne de chiffres et de lettres. Si elle n’affiche rien, vous devez générer une nouvelle clé SSH et l’associer à GitHub Enterprise Server.
Conseil : Sur la plupart des systèmes, les clés privées par défaut (~/.ssh/id_rsa
et ~/.ssh/identity
) sont automatiquement ajoutées à l’agent d’authentification SSH. Vous n’avez pas besoin d’exécuter ssh-add path/to/key
, sauf si vous remplacez le nom de fichier quand vous générez une clé.
Obtention de détails supplémentaires
Vous pouvez également vérifier que la clé est en cours d’utilisation en essayant de vous connecter à git@[hostname]
:
$ ssh -vT git@HOSTNAME
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type -1
> debug1: identity file /Users/YOU/.ssh/id_rsa-cert type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa type -1
> debug1: identity file /Users/YOU/.ssh/id_dsa-cert type -1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Trying private key: /Users/YOU/.ssh/id_rsa
> debug1: Trying private key: /Users/YOU/.ssh/id_dsa
> debug1: No more authentication methods to try.
> Permission denied (publickey).
Dans cet exemple, nous n’avons pas de clés utilisable par SSH. La chaîne « -1 » à la fin des lignes « identity file » signifie que SSH n’a pas pu trouver de fichier à utiliser. Plus loin, les lignes « Trying private key » indiquent également qu’aucun fichier n’a été trouvé. Si un fichier existait, ces lignes indiqueraient « 1 » et « Offering public key », respectivement :
$ ssh -vT git@HOSTNAME
> ...
> debug1: identity file /Users/YOU/.ssh/id_rsa type 1
> ...
> debug1: Authentications that can continue: publickey
> debug1: Next authentication method: publickey
> debug1: Offering RSA public key: /Users/YOU/.ssh/id_rsa
Vérifier que la clé publique est attachée à votre compte
Vous devez fournir votre clé publique à GitHub Enterprise Server pour établir une connexion sécurisée.
-
Ouvrez le terminal.
-
Démarrez l’agent SSH en arrière-plan.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
Recherchez et notez l’empreinte digitale de votre clé publique.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.
-
Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.
-
Comparez la liste des clés SSH à la sortie de la commande
ssh-add
.
-
Ouvrez la ligne de commande.
-
Démarrez l’agent SSH en arrière-plan.
$ ssh-agent -s > Agent pid 59566
-
Recherchez et notez l’empreinte digitale de votre clé publique.
$ ssh-add -l -E sha256 > 2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)
-
Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.
-
Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.
-
Comparez la liste des clés SSH à la sortie de la commande
ssh-add
.
-
Ouvrez le terminal.
-
Démarrez l’agent SSH en arrière-plan.
$ eval "$(ssh-agent -s)" > Agent pid 59566
-
Recherchez et notez l’empreinte digitale de votre clé publique. Si vous utilisez OpenSSH 6.7 ou version antérieure :
$ ssh-add -l > 2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
Si vous utilisez OpenSSH 6.8 ou version ultérieure :
$ ssh-add -l -E md5 > 2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/USERNAME/.ssh/id_rsa (RSA)
-
Dans le coin supérieur droit d’une page, cliquez sur votre photo de profil, puis sur Paramètres.
-
Dans la section « Accès » de la barre latérale, cliquez sur Clés SSH et GPG.
-
Comparez la liste des clés SSH à la sortie de la commande
ssh-add
.
Si vous ne voyez pas votre clé publique dans GitHub Enterprise Server, vous devez ajouter votre clé SSH à GitHub Enterprise Server pour l’associer à votre ordinateur.
Avertissement : Si vous voyez une clé SSH que vous ne connaissez pas sur GitHub Enterprise Server, supprimez-la immédiatement et contactez le votre administrateur de site pour obtenir de l’aide. Une clé publique non identifiée peut indiquer un problème de sécurité. Pour plus d’informations, consultez « Examen de vos clés SSH ».