Skip to main content
Une carte Raspberry Pi connectée via Ethernet sur un bureau avec un éclairage néon violet et bleu, avec un moniteur affichant un terminal et le logo GitHub en arrière-plan.

Automatiser la configuration des clés SSH GitHub sur Raspberry Pi avec gh CLI

4 min 713 words

Je viens de recevoir un nouveau Raspberry Pi 🎉

Avec chaque nouvel ordinateur vient un moment délicieux de configuration. Parmi ces configurations, il y a la mise en place de l’accès à mes dépôts GitHub privés.

Dans mon cas, j’en ai besoin pour récupérer un dépôt contenant un script de bienvenue. Ce script affiche, lors de la connexion SSH à l’instance, le nom de l’instance, des informations comme le nombre d’utilisateurs actuellement connectés, l’uptime, l’adresse IP, et enfin, un prompt et un schéma de couleurs personnalisés. Si ce projet vous intéresse, je l’ai rendu publiquement accessible ici. Au-delà de ça, j’ai aussi besoin d’accéder à des dépôts privés qui contiennent des modèles de configuration par défaut pour Portainer, Prometheus, Loki, Watchtower, et plus encore.

Dans ce court article, je détaillerai la façon la plus efficace de configurer cela à distance via SSH : en utilisant la GitHub CLI pour gérer à la fois l’authentification et les clés SSH en une seule fois.

La Méthode “Tout-en-Un” via GitHub CLI

D’abord, ouvrez une connexion SSH vers l’instance que vous voulez configurer.

Une fois connecté, installez la GitHub CLI (voir le site officiel) en exécutant ces commandes :

sudo apt update
sudo apt install -y gh

Nous utiliserons ensuite la GitHub CLI pour nous connecter. La beauté de gh est qu’il gère la gestion des clés SSH automatiquement.

Lancez la commande suivante :

gh auth login

Cette commande déclenche une configuration interactive. Suivez ces étapes spécifiques pour tout configurer d’un coup :

  1. Compte (Account) : Sélectionnez GitHub.com.

invite de connexion gh auth demandant à quel compte se connecterinvite de connexion gh auth demandant à quel compte se connecter

  1. Protocole (Protocol) : Sélectionnez SSH.

invite de connexion gh auth demandant le protocole, sélectionnant SSHinvite de connexion gh auth demandant le protocole, sélectionnant SSH

Note : Vous pouvez sélectionner HTTPS si vous préférez, mais vous perdrez la fonctionnalité de génération automatique de clé et pourriez avoir besoin de configurer un “credential helper” plus tard.

  1. Clés SSH (SSH Keys) : L’outil va vérifier votre dossier .ssh.

    • Si aucune clé n’existe : Il demandera “Generate a new SSH key to add to your GitHub account?”. Sélectionnez Yes. Vous pouvez laisser la passphrase vide (appuyez sur Entrée) pour les scripts automatisés. Enfin, Sélectionnez Yes pour uploader la nouvelle clé publique.

    • Si une clé existe déjà : Il demandera “Upload your SSH public key to your GitHub account?” et listera votre clé existante (ex. id_ed25519.pub). Sélectionnez-la et appuyez sur Entrée.

invite de connexion gh auth demandant quelle clé SSH utiliser

💡 Astuce : Vous voulez une clé différente ? Si l’outil détecte une clé existante mais que vous préférez en créer une toute nouvelle pour cet appareil spécifique, sélectionnez Skip. Finissez le processus de connexion, générez votre nouvelle clé manuellement (ssh-keygen), et lancez ensuite gh ssh-key add path/to/key.pub pour l’uploader instantanément.

  1. Méthode d’Authentification : Sélectionnez Paste an authentication token.

Note : Nous utilisons la méthode par token car la connexion via navigateur échoue souvent ou reste bloquée sur les appareils “headless” (SSH uniquement).

invite de connexion gh auth demandant quelle méthode d'authentification utiliserinvite de connexion gh auth demandant quelle méthode d’authentification utiliser

La CLI fournira un lien pour créer un token et une liste des scopes requis.

Ouvrez le lien fourni dans le navigateur de votre ordinateur.

la page contenant les tokens sur le compte GitHub de l'utilisateurla page contenant les tokens sur le compte GitHub de l’utilisateur

Cliquez sur le menu déroulant “Generate new token” dans le coin supérieur droit, puis sélectionnez “Generate new token (classic)”.

le formulaire de création pour générer un nouveau token (classic)le formulaire de création pour générer un nouveau token (classic)

Nommez votre token (ex. “Raspberry Pi Setup”), définissez une date d’expiration, et sélectionnez les scopes requis : repo, read:org, et workflow.

Important : Assurez-vous de cocher aussi admin:public_key (ou write:public_key). Cette permission est requise pour que la CLI upload automatiquement votre clé SSH sur votre compte.

Cliquez sur “Generate token”. Copiez le token immédiatement.

token nouvellement créétoken nouvellement créé

Retournez sur votre terminal, collez le token, et appuyez sur Entrée.

C’est tout ! Vous êtes maintenant connecté, et votre Raspberry Pi a une clé SSH valide autorisée sur votre compte GitHub. Aucun copier-coller manuel requis.

Tester que tout fonctionne

Pour effectuer notre test, créons un dépôt privé. Depuis la page d’accueil GitHub, cliquez sur le bouton “New”. Nommez-le test-RPI-connection et sélectionnez Private.

création d'un nouveau dépôtcréation d’un nouveau dépôt

Sur la page du dépôt, cliquez sur le bouton vert Code, assurez-vous que l’onglet SSH est actif, et copiez l’URL (elle commence par git@github.com...).

De retour dans votre terminal :

git clone git@github.com:your_username/test-RPI-connection.git

Si votre configuration est réussie, vous devriez voir un message disant Cloning into 'test-RPI-connection'... (et un avertissement qu’il est vide).

Félicitations ! Votre Raspberry Pi est maintenant pleinement intégré avec votre écosystème GitHub privé.