Windows Server

Se connecter en SSH depuis Windows Server vers un serveur Linux

Se connecter en SSH depuis Windows Server vers un serveur Linux

Même si vous disposez d’une infrastructure full Microsoft, il reste des composants qui peuvent nécessiter des distributions open-source pour fonctionner – je pense par exemple aux appliances réseau (NetScaler, F5) et bien d’autres. Dans ce genre de cas, il peut être très intéressant de pouvoir se connecter en SSH depuis votre Windows Desktop et/ou Server en CLI SSH vers votre serveur Unix.

Je vous propose de voir aujourd’hui comment faire pour vous connecter en SSH depuis Windows. Pour ma part, je vais réaliser les actions depuis un Windows Server 2012 mais cela fonctionnera très probablement également sur Windows 8 ou Windows 10 (et bien sûr sur Windows Server 2016). 🙂

Pour bien comprendre ce que nous allons faire, vous devez savoir que ce que nous recherchons c’est utiliser (et donc installer) le module suivant : Posh-SSH qui est disponible sur GitHub – et pour cela, il y a plusieurs façons d’y parvenir en fonction de votre cas de figure.

Etape 0 – Constat sur Windows Server 2012 R2 vs. Windows Server 2016

Si nous tentons de rechercher et d’installer le module suivant sur un Windows Server 2012 R2 (de base), cela ne fonctionnera pas (comme vous le verrez sur la capture ci-dessous) car le module n’est pas géré de base sur PowerShell v4.

Constat sur Windows Server 2012 R2 vs. Windows Server 2016

Si vous réalisez la même tentative sur un Windows Server 2016, vous verrez que le module existe et qu’il est possible de l’installer.

Version PowerShell

Cela vient en fait de la version de PowerShell que vous utilisez. Par défaut sous Windows Server 2012, vous êtes en v4 et sous Windows Server 2016 vous êtes en v5.

Pour vérifier la version du Management Framework pour PowerShell, utilisez la commande suivante :

$PSVersionTable.PSVersion

Vous aurez alors le retour suivant :

Version PowerShell

Comme vous le voyez dans mon cas, je ne dispose pas de la v5 de PowerShell – je n’aurais donc aucune CmdLet pour me connecter en SSH.

Résumons donc pour installer ce module Posh-SSH :

  • Si vous êtes sur Windows Server 2016, vous pourrez procéder à l’installation du module sans souci (vous pouvez poursuivre la lecture à l’étape 2) ;
  • Si vous êtes sur Windows Server 2012 R2, vous devez préalablement installer le Framework Management v5 (dans ce cas, passez par l’étape 1).

Etape 1 – Installer PowerShell v5 (via la KB3134758)

Je vais donc installer la KB suivante : KB3134758 (bien choisir la version correspondant à la version de votre Windows).

Etape 2 – Installation du module Posh-SSH

Après un petit redémarrage, si vous tenter d’exécuter à nouveau les 2 commandes suivantes (dans le cas où vous êtes sur un 2012 R2 – sinon sur 2016 ça fonctionne de base) :

Find-Module Posh-SSH
Install-Module Posh-SSH

Vous pourrez alors installer le module et obtenir les CmdLet pour établir des connections SSH vers des serveurs Unix. Pour voir la liste des CmdLet disponibles pour ce module, exécutez la commande suivante :

Get-Command -Module Posh-SSH

Il nous reste à voir comment nous y connecter maintenant 🙂 !

Etape 3 – Se connecter en SSH à un serveur Unix

Je vous laisse le soin d’avoir un serveur Linux quelque part pour faire le test… Il nous reste donc à exécuter la CmdLet suivante pour nous connecter :

New-SSHSession -ComputerName monserver.domain.tld-Credential (Get-Credential) -Verbose -Port 22
Ouverture d’une session SSH en PowerShell

Vous devrez valider le fingerprint en appuyant sur Y. Et si vous êtes finalement correctement connecté, vous devriez avoir un retour vous indiquant votre SessionId. Vous en aurez besoin pour exécuter une commande sur le serveur distant !

Exécutez la commande Invoke-SSHCommand en utilisant au minimum les paramètres -Command, -SessionId. Voyez la capture ci-dessous – dans cet exemple, j’exécute les commandes last et uptime sur mon serveur Unix distant.

Exécution d’une commande via PowerShell

Enfin, sachez que vous pouvez gérer plusieurs connexions en même temps. Pour les voir, utilisez la commande suivante : Get-SSHSession. Et finalement, lorsque vous avez terminé, vous pouvez exécuter la commande suivante pour vous déconnecter du serveur Unix distant : Remove-SSHSession.

Deconnexion de la session

Très pratique donc pour administrer des serveurs Linux depuis un serveur Windows. J’ai eu l’occasion de mettre cela en pratique avec un NetScaler il n’y a pas si longtemps et ça m’a vraiment beaucoup aidé ! Il ne reste qu’à imaginer les possibilités ! 😉

Source d’origine : it-connect.fr – Merci à l’auteur Florian !

Share
Published by
thibault

Recent Posts

Microsoft introduit une connexion automatique controversée : quels enjeux pour votre sécurité ?

Microsoft introduit une connexion automatique controversée Microsoft semble s’engager dans une direction qui suscite la…

1 jour ago

OpenAI dévoile Operator : ChatGPT surfe sur Internet pour vous

OpenAI dévoile Operator : ChatGPT surfe sur Internet pour vous OpenAI dévoile Operator : L’IA…

2 jours ago

IA et video : une combinaison parfaite pour les campagnes marketing modernes

Dans le monde trépidant du marketing numérique, rester en avance sur les tendances est essentiel…

4 jours ago

Lanzarote en hiver : une semaine entre plages, volcans et réveillon au soleil

Réveillon 2024-2025 à Lanzarote (image générée par IA) Vous cherchez une destination pour échapper à…

1 semaine ago

Microsoft 365 : L’arrivée de Copilot entraîne une augmentation des prix en 2025

Microsoft 365 : L’arrivée de Copilot entraîne une augmentation des prix en 2025 Microsoft a…

1 semaine ago

Bonjour 2025, adieu 2024 !

Alors que l'année 2024 est officiellement révolue, il est temps de jeter un regard en…

2 semaines ago