Configurer l'authentification par clé sur le service OpenSSH sous Windows

Pour automatiser les déploiements nécessitant scp ou ssh sans mot de passe sur un serveur Windows, l'installation et la configuration correcte du service OpenSSH est essentielle. Cet article explique la procédure d'activation de l'authentification par clé, en mettant l'accent sur une particularité de configuration spécifique à Windows qui peut être source d'erreurs.

Installation du service OpenSSH

La première étape consiste à installer le service OpenSSH sur le système Windows. Les détails de cette installation ne sont pas couverts ici, mais ils sont bien documentés dans les guides officiels de Microsoft.

Génération de la paire de clés

Ouvrir une fenêtre PowerShell et naviguer vers le répertoire d'installation d'OpenSSH pour créer les clés cryptographiques.

cd 'C:\Program Files\OpenSSH'
.\ssh-keygen

Suivre les invites pour générer la paire de clés RSA (par défaut dans C:\Users\<NomUtilisateur>\.ssh). Les fichiers id_rsa (clé privée) et id_rsa.pub (clé publique) sont créés.

Configuration du fichier authorized_keys

Contrairement à l'environnement Linux, la clé publique ne doit pas être ajoutée au fichier authorized_keys dans le répertoire .ssh de l'utilisateur. Une configuration spécifique au groupe administrators redirige la lecture vers un autre fichier.

Localisation correcte et nom du fichier de clés

Pour les utilisateurs du groupe administrateurs, le fichier de clés autorisées doit être placé dans C:\ProgramData\ssh et nommé administrators_authorized_keys. Il faut donc ajouter le contenu de la clé publique à ce fichier spécifique.

cd C:\ProgramData\ssh
cat "C:\Users\Administrator\.ssh\id_rsa.pub" >> administrators_authorized_keys

Paramétrage du daemon SSH

Le fichier de configuraton principal sshd_config se trouve dans C:\ProgramData\ssh. Pour activer l'authentification par clé et autoriser l'accès root (ou administrateur), les directives suivantes doivent être présentes et décommentées :

RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes

La directive ci-dessous, située généralement en fin de fichier, est celle qui impose l'utilisation du fichier administrators_authorized_keys pour les administrateurs.

Match Group administrators
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

Après modification, redémarrer le service OpenSSH pour appliquer la nouvelle configuration.

Préparation de la clé privée côté client

Copier le fichier de clé privée (id_rsa) sur la machine cliente (par exemple, un hôte Linux). S'assurer que les permissions sont restrictives afin de sécuriser l'accès.

chmod 600 ./id_rsa

Test de la connexion

Tenter une connexion SSH en spécifiant le fichier de clé privée. Si la configuration est correcte, l'authentification se fera sans demande de mot de passe.

ssh -i ./id_rsa Administrator@ip_du_serveur

Étiquettes: OpenSSH Windows Server authentification par clé ssh-keygen sshd_config

Publié le 1 juin à 11h48