27/12/2024

Logiciel - OS

Cette mise à jour récente pour Windows 11 casse les connexions SSH

Si vous utilisez Windows 11 22H2 ou 23H2 et que vos connexions SSH ne fonctionnent plus, sachez que vous n'êtes pas seul ! Microsoft a confirmé l'existence d'un problème lié à la dernière mise à jour de sécurité. Voici ce que vous devez savoir.

À partir d'une machine sous Windows, il est possible de se connecter à distance en SSH à partir d'une application avec un client SSH, ou d'utiliser le client SSH de Windows, grâce à l'implémentation d'OpenSSH. C'est bien cette seconde possibilité qui est affectée par ce bug.

"Après l'installation de la mise à jour de sécurité Octobre 2024, certains clients signalent que le service OpenSSH (Open Secure Shell) ne démarre pas, ce qui empêche les connexions SSH.", peut-on lire sur le site de Microsoft.

Ce nouveau problème n'affecte pas tous les utilisateurs, mais uniquement ceux dont la machine respecte certaines conditions. Au-delà de concerner Windows 11 22H2 ou Windows 11 23H2, ce bug affecte les machines où au moins l'une de ces mises à jour est installée :

Microsoft précise que les éditions suivantes sont concernées : IoT, Enterprise et Education, sans exclure pour autant l'existence de ce problème avec les éditions Famille et Pro.

Comment résoudre ce problème ?

L'entreprise américaine travaille sur la mise au point d'un correctif pour ce dysfonctionnement. Il devrait être inclus à une future mise à jour du système d'exploitation. En attendant, une solution est proposée et elle s'appuie sur la ligne de commande. Il s'agirait visiblement d'un problème de permissions sur les répertoires de SSH.

"Mettre à jour les autorisations pour C:\ProgramData\ssh et C:\ProgramData\ssh\logs pour permettre un contrôle total pour SYSTEM et le groupe Administrateurs, tout en autorisant l'accès en lecture pour les utilisateurs authentifiés.", voici comment est décrite la solution à appliquer.

Pour cela, ouvrez une console PowerShell en tant qu'administrateur, puis exécutez les commandes suivantes :

$directoryPath = "C:\ProgramData\ssh" 

$acl = Get-Acl -Path $directoryPath 

$sddlString = "O:BAD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;AU)"

$securityDescriptor = New-Object System.Security.AccessControl.RawSecurityDescriptor $sddlString 

$acl.SetSecurityDescriptorSddlForm($securityDescriptor.GetSddlForm("All")) 

Set-Acl -Path $directoryPath -AclObject $acl

Ce premier exemple s'applique au répertoire "C:\ProgramData\ssh". Vous devez ensuite relancer les commandes en modifiant le nom du chemin ciblé au niveau de la première commande, ce qui donnera :

$directoryPath = "C:\ProgramData\ssh\logs" 

$acl = Get-Acl -Path $directoryPath 

$sddlString = "O:BAD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;0x1200a9;;;AU)"

$securityDescriptor = New-Object System.Security.AccessControl.RawSecurityDescriptor $sddlString 

$acl.SetSecurityDescriptorSddlForm($securityDescriptor.GetSddlForm("All")) 

Set-Acl -Path $directoryPath -AclObject $acl

Il s'agit de la solution temporaire officielle fournie par le site de Microsoft.

Source

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.