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

WhatsApp est disponible sur iPad

WhatsApp sur iPad : Une Nouvelle Dimension pour la Communication Introduction L'application WhatsApp sur iPad…

22 heures ago

L’intégration de Grok dans Azure : Une avancée majeure pour Microsoft

L'intégration de Grok dans Azure : Une avancée majeure pour Microsoft Introduction L'intégration de Grok…

2 jours ago

Microsoft Build 2025 : Windows Subsystem for Linux (WSL) devient open source !

Microsoft Build 2025 : Windows Subsystem for Linux (WSL) devient open source ! Lors de…

3 jours ago

OpenAI et le designer de l’iPhone : Révolution dans la tech avec de nouveaux objets connectés

6,5 milliards pour Jony Ive : OpenAI veut sortir l’IA de l’écran - © OpenAI,…

4 jours ago

Telegram : Pavel Durov Accuse la France de Censurer des Opposants Roumains

Telegram : Pavel Durov Accuse la France de Censurer des Opposants Roumains Introduction Dans un…

5 jours ago

Découvrez Tempest Rising : le nouveau jeu inspiré par Command and Conquer

Découvrez Tempest Rising : le nouveau jeu inspiré par Command and Conquer Tempest Rising est…

3 semaines ago