Voici une solution permettant d’interagir avec un ordinateur sous Windows depuis un ordinateur sous Linux ou MacOS. La solution utilisée reste relativement simple à mettre en place et utilise des standards. Nous utiliserons Windows Server 2012R2 et un client Linux.
Installation côté Windows
PowerShell :
Récupérez la dernière version de PowerShell pour Windows ici : https://github.com/PowerShell/PowerShell Ici nous utiliserons la version 6.0.4 dans toute la suite de l’article. L’installeur Windows va placer les fichiers ici : C:\Program Files\PowerShell\6.0.4\
OpenSSH :
Récupérez la dernière version de PowerShell pour Windows ici : https://github.com/PowerShell/Win32-OpenSSH/releases/download/v7.7.2.0p1-Beta/OpenSSH-Win64.zip Pour l’installer, je vous recommande de dé-zippez son contenu à la racine du disque sur C:\. Ouvrez une invite de commande PowerShell en mode administrateur et effectuez les commandes suivantes :
PS: cd C:\OpenSSH-Win64\ PS: powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 PS: cmd /c /D mklink c:\pwsh "C:\Program Files\PowerShell\6.0.4"
Il faut aller éditer le fichier de configuration sshd_config situé dans le dossier C:\ProgramData\ssh\ et assurez vous d’avoir les paramètres suivants :
PasswordAuthentication yes Subsystem powershell c:\pwsh\pwsh.exe -sshs -NoLogo -NoProfile
Maintenant il suffit de lancer le service
PS: net ssh start
Path OpenSSH
Il est aussi indispensable de configurer la variable d’environnement « path » pour que les commandes SSH soient reconnues par le système. Pour cela, rendez-vous dans l’application « Modifier les variables d’environnement système ».
Sélectionnez ensuite « path » et cliquez sur « Modifier… ».
Rajoutez le texte suivant à la fin de la ligne (sans oublier le ; ) et validez.
;C:\OpenSSH-Win64\
Installation côté Linux
Pour la partie Linux, pas besoin de SSH il est normalement déjà installé sur votre machine d’administration. La méthode d’installation de PowerShell est la méthode universelle mais sachez que des paquets pour diverses distributions existes (Debian, Red-Hat).
Téléchargez la version stable en cours ici :
https://github.com/PowerShell/PowerShell/releases/tag/v6.0.4
Les commandes suivantes suffisent :
$ wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.4/powershell-6.0.4-linux-x64.tar.gz $ tar -xvzf powershell-6.0.4-linux-x64.tar.gz $ cd powershell-6.0.4-linux-x64
Utilisation
Maintenant que tout est installé, voici comment accéder en ssh à votre serveur Windows et y exécuter des commandes via PowerShell. Cette partie reprend la documentation officielle de Microsoft.
Dans le dossier où se trouve PowerShell, lancez le script pwsh
./pwsh PS /powershell-6.0.4-linux-x64>
Créez ensuite la connexion au serveur :
> $session = New-PSSession -HostName srv.example.com -UserName Administrateur
Vous allez devoir accepter le certificat la première fois et indiquer votre mot de passe. Vérifions que la sessions est bien là :
> $session
Si vous souhaitez vous connecter sur le Shell distant, voici la commande :
> Enter-PSSession $session
Et si vous souhaitez exécuter votre script « script.ps » situé à la racine du disque C sur la machine distante, voici ce qu’il faut faire :
> Invoke-Command $session -ScriptBlock { C:\script.ps1 }
Quel site incroyable, wahou je suis impressionné par tant de labeur.