Nous souhaitons connecter VS Code à Github par SSH sur Windows. Le compte github existe. Une adresse email sert d’identifiant github pour le compte. Nous souhaitons pouvoir sur Windows accéder à un dossier github d’un projet créé sur MacBookPro. Pour ce faire nous avons besoin de créer un accès ssh qui remplacera l’usuel user/pwd, pour notre identifiant de compte github.
Nous avons créé le même article pour Mac.
Vérifier si OpenSSH est installé sur Windows.
Pour vérifier si OpenSSH est installé sur votre système Windows 10, vous pouvez suivre ces étapes :
Utiliser les Paramètres Windows
- Ouvrez les Paramètres de Windows en appuyant sur la touche Windows + I.
- Allez dans Applications > Applications et fonctionnalités > Fonctionnalités facultatives.
- Faites défiler la liste pour voir si Client OpenSSH est déjà installé. Si c’est le cas, il apparaîtra dans la liste des fonctionnalités installées[1][2][6][8][10].
Utiliser PowerShell
- Ouvrez PowerShell en tant qu’administrateur. Pour cela, tapez « PowerShell » dans la barre de recherche de Windows, faites un clic droit sur l’application PowerShell et sélectionnez Exécuter en tant qu’administrateur.
- Tapez la commande suivante et appuyez sur Entrée :
Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
Cette commande affichera le statut du Client OpenSSH et du Serveur OpenSSH (s’ils sont installés ou non)[4][7].
Résultat :
Windows PowerShell Copyright (C) Microsoft Corporation. Tous droits réservés. Testez le nouveau système multiplateforme PowerShell https://aka.ms/pscore6 PS C:\Windows\system32> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*' Name : OpenSSH.Client~~~~0.0.1.0 State : Installed Name : OpenSSH.Server~~~~0.0.1.0 State : NotPresent PS C:\Windows\system32>
Vérifier avec la Commande SSH
Une autre méthode rapide pour vérifier la bonne installation du client OpenSSH consiste à utiliser la commande SSH directement :
- Ouvrez l’invite de commande (cmd) ou PowerShell.
- Tapez
ssh
et appuyez sur Entrée. - Si OpenSSH est installé, vous verrez un résumé des options de commande pour SSH. Si ce n’est pas le cas, vous recevrez un message indiquant que ‘ssh’ n’est pas reconnu comme une commande interne ou externe[3][6][7][8].
Résultat :
PS C:\Windows\system32> ssh usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]] destination [command] PS C:\Windows\system32>
Ces méthodes permettent de vérifier rapidement l’installation d’OpenSSH sur votre système Windows 10. Si OpenSSH n’est pas installé et que vous souhaitez l’ajouter, vous pouvez le faire via les Fonctionnalités facultatives dans les Paramètres Windows ou en utilisant la commande Add-WindowsCapability
dans PowerShell[1][2][4][5][6][7][10][11].
Références:
[1] https://petri.com/the-ultimate-guide-to-installing-openssh-on-windows/
[2] https://learn.microsoft.com/fr-fr/windows-server/administration/openssh/openssh_install_firstuse
[3] https://mkyong.com/linux/check-openssh-version/
[4] https://www.kassianoff.fr/blog/microsoft/installation-configuration-openssh-powershell/
[5] https://www.it-connect.fr/installer-et-configurer-openssh-server-sur-windows-server-2019/
[6] https://www.ionos.fr/digitalguide/serveur/configuration/activer-le-client-ssh-de-windows-10/
[7] https://www.it-connect.fr/comment-utiliser-le-client-ssh-natif-de-windows-10/
[8] https://www.bugshunter.net/Post/Details/57/verifier-linstallation-du-client-ssh-sur-windows-10/
[9] https://learn.microsoft.com/fr-fr/windows-server/administration/openssh/openssh_keymanagement
[10] https://www.pcastuces.com/pratique/astuces/5235.htm
[11] https://www.malekal.com/activer-et-installer-le-serveur-openssh-sur-windows-10/
Générer une paire de clé SSH
Ouvrez l’invite de commande ou PowerShell.
Tapez la commande suivante et remplacez « votre_email@example.com » par l’adresse e-mail GitHub :
ssh-keygen -t ed25519 -C "votre_email@example.com"
Nous remplaçons « votre_email@example.com » par notre adresse email utilisée comme identifaint github.
Lorsqu’on vous demande où sauvegarder la nouvelle clé, appuyez sur Entrée pour accepter l’emplacement par défaut[10][13]. Nous ne mettons pas de passphrase :
PS C:\Windows\system32> ssh-keygen -t ed25519 -C "votre_email@example.com" Generating public/private ed25519 key pair. Enter file in which to save the key (C:\Users\broussel/.ssh/id_ed25519): Created directory 'C:\Users\broussel/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in C:\Users\broussel/.ssh/id_ed25519. Your public key has been saved in C:\Users\broussel/.ssh/id_ed25519.pub. The key fingerprint is: SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx votre_email@example.com The key's randomart image is: +--[ED25519 256]--+ | ......| | ......| | ......| | ......| | ......| +----[SHA256]-----+ PS C:\Windows\system32>
Après génération, les clés public et privé se trouve dans des dossiers :
- C:\Users\broussel/.ssh/id_ed25519
- C:\Users\broussel/.ssh/id_ed25519.pub.
Ajouter la clé SSH au ssh-agent
Vérifier ssh-agent
Ouvrez PowerShell en tant qu’administrateur.
Exécutez la commande suivante pour vérifier le statut du service ssh-agent
:
Get-Service ssh-agent
Vous devez changer le type de démarrage afin qu’il soit actif.
Résultat :
PS C:\Windows\system32> Get-Service ssh-agent Status Name DisplayName ------ ---- ----------- Stopped ssh-agent OpenSSH Authentication Agent PS C:\Windows\system32>
Démarrer ssh-agent en mode mannuel
Toujours dans PowerShell administrateur, exécutez la commande suivante pour configurer le service ssh-agent
pour qu’il démarre manuellement :
Set-Service ssh-agent -StartupType Manual
Après avoir configuré le type de démarrage, démarrez le service en exécutant :
Start-Service ssh-agent
Démarrer ssh-agent en mode automatique
Ouvrez PowerShell en tant qu’administrateur.
Exécutez la commande suivante pour configurer le service ssh-agent
pour qu’il démarre automatiquement avec le système :
Set-Service -Name ssh-agent -StartupType Automatic
Cette étape est recommandée par les sources[1][2][4][5][6][7][10][11] et permet de s’assurer que le service ssh-agent
sera démarré automatiquement lors du démarrage de Windows.
Après avoir configuré le type de démarrage, démarrez le service en exécutant :
Start-Service ssh-agent
Cette commande démarre le service ssh-agent
qui est nécessaire pour gérer vos clés SSH[1][2][3][4][5][6][7][10][11].
Vérifier le statut du service
Pour confirmer que le service ssh-agent
est maintenant en cours d’exécution, exécutez :
Get-Service ssh-agent
Résultat :
PS C:\Windows\system32> Set-Service -Name ssh-agent -StartupType Automatic PS C:\Windows\system32> Start-Service ssh-agent PS C:\Windows\system32> Get-Service ssh-agent Status Name DisplayName ------ ---- ----------- Running ssh-agent OpenSSH Authentication Agent PS C:\Windows\system32>
Ajoutez votre clé SSH privée au ssh-agent.
Vérifiez que le ssh-agent est en cours d’exécution :
Ouvrez PowerShell et exécutez la commande suivante pour démarrer le ssh-agent :
Start-Service ssh-agent
Localisez votre clé privée SSH :
Assurez-vous que le fichier de votre clé privée existe bien dans le répertoire .ssh
de votre profil utilisateur. Par défaut, ce répertoire se trouve à C:\Users\<VotreNomUtilisateur>\.ssh\
. Remplacez <VotreNomUtilisateur>
par votre nom d’utilisateur Windows.
Utilisez le chemin complet de la clé privée :
Utilisez le chemin complet sous Windows. Par exemple :
ssh-add C:\Users\<VotreNomUtilisateur>\.ssh\id_ed25519
Remplacez <VotreNomUtilisateur>
par votre nom d’utilisateur Windows et id_ed25519
par le nom de votre fichier de clé privée si vous avez utilisé un nom différent lors de la création de la clé.
Exécutez la commande ssh-add avec le chemin correct :
Dans PowerShell, exécutez la commande ssh-add
avec le chemin complet vers votre clé privée SSH.
ssh-add chemin\vers\votre\clé_privée
Résultat :
ssh-add C:\Users\broussel/.ssh/id_ed25519
on a la clé ajoutée :
PS C:\Windows\system32> ssh-add C:\Users\broussel/.ssh/id_ed25519 Identity added: C:\Users\broussel/.ssh/id_ed25519 (votre_email@example.com) PS C:\Windows\system32>
Ajout de la clé public ssh au compte Github
Ouvrez le fichier de votre clé publique SSH en utilisant un éditeur de texte. Par exemple :
notepad C:\Users\broussel/.ssh/id_ed25519.pub
Copiez le contenu du fichier.
Connectez-vous à votre compte GitHub et allez dans « Settings » > « SSH and GPG keys » > « New SSH key ».
Collez votre clé publique dans le champ « Key » et donnez-lui un titre descriptif[1][2].
[1] https://docs.github.com/en/enterprise-server%403.11/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
[2] https://docs.github.com/fr/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account
Tester la connection ssh sans vs code vers github sur windows
Ouvrez votre terminal.
Tapez la commande suivante pour tester votre connexion.
ssh -T [email protected]
Github affiche un message de bienvenue de GitHub lors de la connection.
Explication
La commande ssh -T [email protected]
est utilisée pour tester votre connexion SSH à GitHub. Voici une explication détaillée de chaque partie de la commande :
ssh
: C’est le programme utilisé pour établir des connexions sécurisées à distance via le protocole SSH (Secure Shell). Il permet de se connecter de manière sécurisée à un serveur distant.-T
: Cette option désactive l’allocation d’un terminal distant. Pour tester la connexion, inutile de démarrer une session interactive sur le serveur GitHub.git@github.com
: Cette partie spécifie l’utilisateur et l’hôte auquel vous essayez de vous connecter. Dans ce cas,git
est le nom d’utilisateur utilisé par GitHub pour les connexions SSH, etgithub.com
est l’adresse du serveur GitHub. Il est important de noter quegit
est un nom d’utilisateur générique utilisé par GitHub et ne doit pas être remplacé par votre nom d’utilisateur GitHub ou votre adresse e-mail.
La confusion peut survenir de l’interprétation de git@github.com
comme une adresse e-mail, mais en réalité, c’est la syntaxe standard pour spécifier un utilisateur et un hôte dans une commande SSH. Lorsque vous exécutez cette commande, SSH tente d’établir une connexion sécurisée avec le serveur GitHub en utilisant la clé SSH privée correspondant à une clé publique que vous avez préalablement ajoutée à votre compte GitHub. GitHub, affiche un message de bienvenue confirmant la connexion établie avec succès, sans accès shell interactif[1][2].
Si vous rencontrez l’erreur « ssh: Could not resolve hostname [email: Hôte inconnu », cela signifie qu’il y a eu une erreur de saisie dans la commande. Assurez-vous que la commande est saisie correctement comme ssh -T git@github.com
sans espaces ou caractères supplémentaires accidentels.
Citations:
[1] https://docs.github.com/en/authentication/connecting-to-github-with-ssh
[2] https://docs.github.com/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection
[3] https://gist.github.com/zulhfreelancer/54297b693233887be78bf061d7500cf9
[4] https://gist.github.com/ddeveloperr/9574740628637bc2a127
[5] https://stackoverflow.com/questions/66080774/testing-github-ssh-connection-error-permission-denied-publickey-how-to-fix
[6] https://www.youtube.com/watch?v=Sjk-NRsNOBc
[7] https://github.com/sshnet/SSH.NET
[8] https://github.com/omidmohajers/ssh-tester
Résultat :
PS C:\Windows\system32> ssh -T git@github.com The authenticity of host 'github.com (140.82.121.3)' can't be established. ECDSA key fingerprint is SHA256:xxxxxxxxxx/xxxxxxxx/xxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com,000.000.000.000' (ECDSA) to the list of known hosts. Hi copier-coder! You've successfully authenticated, but GitHub does not provide shell access. PS C:\Windows\system32>
La connection fonctionne
Clôner dans vs-code un dossier github avec ssh sur windows
choisir « Clone git repository » à l’ouverture de VS Code.
Copier le chemin ssh dans github depuis [Code] dans le dossier du projet souhaité
Coller ce lien en haut dans la popup d’ouverture de VS Code ouverte par la commande « clone git repository ».
La commande demande de choisir le dossier dans lequel installer le projet.