Académique Documents
Professionnel Documents
Culture Documents
pour GitHub
Il existe d’autres services d’hébergement Git comme Gitlab et Bitbucket, mais GitHub est le
choix le plus populaire auprès des développeurs. Vous pouvez même modifier votre profil
pour paraître plus attrayant aux yeux des recruteurs.
Vous pouvez utiliser Git et GitHub pour organiser vos projets, collaborer avec d’autres
développeurs et – bien sûr – sur Kinsta.
Mais comme Git et GitHub sont des outils similaires mais différents, vous devez constamment
mettre à jour votre flux de travail avec chacun d’eux.
Nous vous recommandons d’utiliser des clés SSH pour chacune de vos machines. Ainsi,
dans ce tutoriel, vous apprendrez ce qu’elles sont, certains de leurs avantages, et comment
générer et configurer les clés SSH de GitHub.
C’est parti !
Ce protocole est basé sur une architecture client-serveur, ce qui signifie que vous, en tant
qu’utilisateur (ou « client »), devez utiliser un logiciel spécial, appelé client SSH, pour vous
connecter à un serveur distant et exécuter des commandes. C’est essentiellement ce que
vous faites lorsque vous vous authentifiez à GitHub via un terminal.
— Push Git.
Mais SSH n’est pas seulement utilisé pour GitHub. Il est largement utilisé par d’autres
plateformes comme Kinsta, Google Cloud et Amazon Web services pour créer un canal
sécurisé d’accès à leurs services.
Maintenant, pour savoir comment les clés SSH fonctionnent réellement, vous devez
comprendre les différences entre les clés publiques et privées.
Fondamentalement, le cryptage asymétrique est un système qui utilise une paire de clés, à
savoir des clés publiques et privées.
Comme vous pouvez le deviner, la clé publique peut être partagée avec n’importe qui. Son
principal objectif est de chiffrer les données, en convertissant le message en code secret ou
en texte chiffré. Cette clé est généralement envoyée à d’autres systèmes – par exemple, des
serveurs – pour crypter les données avant de les envoyer sur Internet.
D’autre part, la clé privée est celle que vous devez garder pour vous. Elle est utilisée pour
décrypter les données cryptées avec votre clé publique. Sans elle, il est impossible de
décoder vos informations cryptées.
Cette méthode vous permet, ainsi qu’au serveur, de conserver un canal de communication
sûr pour transmettre les informations.
Voici ce qui se passe en arrière-plan lorsque vous vous connectez à un serveur via SSH :
Il est important de garder vos clés privées en sécurité et de ne les partager en aucun cas
avec personne. Elles sont littéralement la clé de toutes les informations qui vous sont
envoyées.
Voici ce qui se passe lorsque vous essayez de vous authentifier avec votre mot de passe
GitHub par HTTP dans un terminal :
GitHub a besoin de votre clé publique pour vous autoriser à modifier l’un de vos dépôts via
SSH.
Maintenant que vous comprenez un peu le protocole SSH et les différences entre les clés
publiques et privées, il est temps de configurer le canal SSH sécurisé entre votre machine et
vos dépôts GitHub.
Avant d’aller plus loin, vous devriez déjà avoir un compte GitHub et un terminal/une invite de
commande avec Git installé sur votre système. Si vous êtes sous Windows, assurez-vous
d’avoir installé Git bash, qui intègre tous les outils dont vous aurez besoin pour suivre ce
tutoriel.
Le client OpenSSH est le logiciel open source le plus populaire utilisé pour se connecter via
SSH. Vous n’aurez pas à vous soucier de votre système d’exploitation car il est installé par
défaut sur Linux, macOS et Windows 10.
Vous devez lancer une invite de commande sur Windows ou un terminal sur les systèmes
basés sur Unix pour générer des clés SSH locales. En général, vous pouvez le faire en
recherchant « terminal », « cmd » ou « powershell » dans votre panneau d’applications, puis
en cliquant sur l’icône qui s’affiche.
— Recherche de l’application Terminal.
Info
Après avoir fait cela, vous devriez avoir une fenêtre similaire à l’image suivante.
— Application Terminal.
Exécutez la commande suivante pour générer une paire de clés SSH locales :
Il est temps de vous dire un secret : Personne ne peut vraiment se souvenir de cette
commande ! La plupart des développeurs doivent la chercher sur Google à chaque fois car :
1. Il s’agit d’une commande vraiment longue, avec des chiffres oubliables et aléatoires.
2. Nous l’utilisons rarement, donc cela ne vaut pas la peine de la mémoriser la plupart du
temps.
Cependant, il est important de comprendre chaque commande que nous introduisons dans
nos terminaux, alors voyons ce que signifie chaque partie de celle-ci.
ssh-keygen : L’outil en ligne de commande utilisé pour créer une nouvelle paire de clés
SSH. Vous pouvez voir ses drapeaux avec ssh-keygen help
–t ed25519 : L’indicateur -t est utilisé pour indiquer l’algorithme utilisé pour créer la
signature numérique de la paire de clés. Si votre système le prend en charge, ed25519
est le meilleur algorithme que vous pouvez utiliser pour créer des paires de clés SSH.
-C « email » : Le drapeau -c est utilisé pour fournir un commentaire personnalisé à la
fin de la clé publique, qui est généralement l’email ou l’identification du créateur de la
paire de clés.
Après avoir saisi la commande dans votre terminal, vous devrez saisir le fichier dans lequel
vous souhaitez enregistrer les clés. Par défaut, il est situé dans votre répertoire personnel,
dans un dossier caché nommé « .ssh », mais vous pouvez le changer pour ce que vous
voulez.
Il vous sera ensuite demandé une phrase de passe à ajouter à votre paire de clés. Cela
ajoute une couche supplémentaire de sécurité si, à tout moment, votre appareil est
compromis. Il n’est pas obligatoire d’ajouter une phrase de passe, mais c’est toujours
recommandé.
Comme vous pouvez le voir, cette commande génère deux fichiers dans le répertoire que
vous avez sélectionné (généralement ~/.ssh) : la clé publique avec l’extension .pub, et la clé
privée sans extension.
Nous vous montrerons plus tard comment ajouter la clé publique à votre compte GitHub.
Pour cette raison, vous allez ajouter votre nouvelle clé privée à cet agent. Voici comment :
Si vous obtenez un message similaire à celui-ci, tout va bien. Cela signifie que ssh-
agent s’exécute sous un identifiant de processus (PID) particulier.
ssh-add ~/.ssh/kinsta_keys
Remplacez kinsta_keys par le nom de votre clé SSH. Si c’est la première clé que vous
avez créée, elle doit être nommée « id_algorithm_used » par exemple, id_ed25519.
L’étape finale consiste à ajouter votre clé publique à votre compte GitHub. Suivez simplement
ces instructions :
1. Copiez votre clé publique SSH dans votre presse-papiers. Vous pouvez ouvrir le fichier
où elle se trouve avec un éditeur de texte et la copier, ou utiliser le terminal pour afficher
son contenu.
cat ~/.ssh/kinsta_keys.pub
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJl3dIeudNqd0DPMRD6OIh65tjkxFNOt
3. Ensuite, dans vos réglages de profil, cliquez sur SSH and GPG keys.
— Clés SSH et GPG.
4. Cliquez sur le bouton New SSH key.
5. Donnez un titre à votre nouvelle clé SSH sur GitHub – généralement, l’appareil à partir
duquel vous utiliserez cette clé. Puis collez la clé dans la zone Key.
— Formulaire d’ajout d’une nouvelle clé SSH
Il est temps de tester tout ce que vous avez fait jusqu’à présent. Vous allez modifier,
commiter et pousser vers l’un de vos dépôts existants en utilisant SSH pour vous assurer que
votre connexion est correctement configurée.
Pour notre exemple, nous allons modifier le site HTML simple que nous avons créé dans
notre tutoriel Git pour le développement web.
Tout d’abord, nous devrons cloner le dépôt sur notre machine locale. Nous pouvons nous
rendre sur la page du dépôt sur GitHub et copier l’adresse SSH qu’elle fournit.
...
<div class="container my-2">
<h1 class="text-center">A new title!<h1>
</div>
Nous ne touchons à aucun JavaScript ou CSS pour garder ce montage simple. Mais si vous
êtes habile avec JavaScript, vous pourriez trouver une place chez Kinsta. Vérifiez les
compétences de code dont vous avez besoin pour faire partie de l’équipe Kinsta.
Après avoir fait cela, livrez les changements :
git push
Si tout s’est bien passé, félicitations ! Vous venez de configurer une connexion SSH entre
votre machine et GitHub.
Si vous avez plusieurs comptes GitHub – disons un pour vos projets personnels et un pour
votre travail – il est difficile d’utiliser SSH pour les deux. Vous auriez normalement besoin de
machines séparées pour vous authentifier à différents comptes GitHub.
Mais ce problème peut être résolu facilement en configurant le fichier de configuration SSH.
1. Créez une autre paire de clés SSH, et ajoutez-la à votre autre compte GitHub. Gardez à
l’esprit le nom du fichier auquel vous attribuez la nouvelle clé.
ssh-keygen -t ed25519 -C "work@email.com"
touch ~/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
# Work account
Host github-work
HostName github.com
IdentityFile ~/.ssh/work_key_file
IdentitiesOnly yes
Maintenant, chaque fois que vous devez vous authentifier via SSH en utilisant votre compte
professionnel ou secondaire, vous modifiez un peu l’adresse SSH du repo, de :
git@github.com:workaccount/project.git
…à :
git@github-work:workaccount/project.git
Résumé
Félicitations – vous avez appris la plupart des connaissances pratiques dont vous avez
besoin pour vous connecter à GitHub via SSH !
Ce tutoriel a abordé la nécessité du protocole SSH, les différences entre les clés publiques et
privées, la façon de générer des clés, de les ajouter à GitHub, et même de gérer plusieurs
clés SSH pour différents comptes GitHub. Gardez à l’esprit qu’à moins que vous ne vouliez
perdre l’accès à tout, votre clé privée doit rester ainsi : privée.
Avec ces connaissances, vous êtes maintenant prêt à développer un flux de travail sans faille
avec Git et GitHub. Continuez à coder !