aurelien@aschnoebelen.fr:~/blog $

aurelien@aschnoebelen.fr: ~ $ cat ./articles/acceder-a-un-serveur-linux-via-une-cle-ssh-sous-windows/

· 2 min de lecture · #linux #windows #ssh · dir: Sysadmin

Acceder a un serveur Linux via une cle ssh sous Windows

Mémo pratique pour générer une paire de clés SSH sous Windows et configurer un accès sans mot de passe vers un serveur Linux.

Ce mémo donne les étapes clés pour pouvoir générer une clé SSH sous Windows afin de se connecter à un serveur Linux sans entrer de mot de passe. Comme d’habitude, ce mémo n’a pas pour vocation d’être un tutoriel mais bien un aide-mémoire.

1. Génération de la clé sous Windows

Générer une clé SSH avec la commande :

ssh-keygen -t ed25519 -C "<courriel-ou-identifiant-pour-reconnaître-la-machine>"

1.1. Si l’on veut utiliser l’agent SSH

En administrateur, vérifier si le service ssh-agent est lancé :

Get-Service ssh-agent

S’il n’est pas lancé, utiliser la commande :

PowerShell (Admin) powershell
# Set-Service -StartupType Automatic permet de lancer automatiquement le service au démarrage
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent

Vérifier de nouveau l’état du service.

Ajouter la clé SSH à l’agent SSH :

ssh-add ~\.ssh\<nom-de-la-clé>

1.2. Si l’on veut utiliser le fichier de configuration SSH

Éditer ou créer le fichier dans C:\Users\<dossier-de-l'utilisateur>\.ssh\config et ajouter les lignes suivantes :

~/.ssh/config ssh-config
Host <nom-pour-l-hote>
    HostName <hostname-ou-ip>
    User <username>
    IdentityFile "C:\Users\<dossier-de-l-utilisateur>/.ssh/<nom-de-la-clé-privée>"

2. Transfert de la clé publique sur le serveur

Avec Git Bash, on peut utiliser la commande :

ssh-copy-id -i <fichier-clé-publique> <identifiant>@<adresse-ip-du-serveur>

Autrement, copier la clé publique sur le serveur :

scp <fichier-clé-publique> <identifiant>@<adresse-ip-du-serveur>:<chemin-du-répertoire-ssh>

Ensuite, sur le serveur, copier le contenu de la clé publique dans le fichier ~/.ssh/authorized_keys :

cat <fichier-clé-publique> >> ~/.ssh/authorized_keys

NB : il faut gérer les permissions des fichiers SSH strictement sous linux :

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3. Note importante pour Git sous PowerShell

Si l’on veut utiliser la clé SSH pour exécuter les commandes Git sans mot de passe, il est nécessaire d’ajouter la variable d’environnement GIT_SSH = C:\Windows\System32\OpenSSH\ssh.exe ou d’exécuter la commande :

PowerShell powershell
$SSHPath = (Get-Command -Name 'ssh.exe').Source
[Environment]::SetEnvironmentVariable('GIT_SSH', $SSHPath, 'User')

Contrôler l’existence de la variable :

echo $env:GIT_SSH

4. Bonus : lancer l’agent SSH sous Linux

eval "$(ssh-agent -s)"