Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 3 932
    Points : 100 131
    Points
    100 131

    Par défaut Vous pouvez maintenant utiliser Linux pour administrer à distance des machines Windows

    Vous pouvez maintenant utiliser Linux pour administrer à distance des machines Windows,
    avec un accès distant PowerShell via SSH

    L’accès distant PowerShell utilise normalement WinRM pour la négociation de la connexion et le transport des données. SSH a été choisi pour cette implémentation de l’accès distant, car il est maintenant disponible pour les plateformes Linux et Windows, et permet un véritable accès distant PowerShell multiplateforme. Cependant, WinRM fournit également un modèle d’hébergement robuste pour les sessions à distance PowerShell, ce que cette implémentation ne fait pas encore. Cela signifie aussi que la configuration de point de terminaison distant PowerShell et JEA (Just Enough Administration) ne sont pas encore pris en charge dans cette implémentation.

    L’accès distant SSH PowerShell vous permet un accès distant pour une session PowerShell de base entre des ordinateurs Windows et Linux. Pour cela, vous devez créer un processus hébergeant PowerShell sur l’ordinateur cible en tant que sous-système SSH. Microsoft assure qu’au final, il sera remplacé en un modèle d’hébergement plus général, similaire au mode de fonctionnement de WinRM pour prendre en charge la configuration de point de terminaison et JEA.

    Les applets de commande New-PSSession, Enter-PSSession et Invoke-Command ont maintenant un nouvel ensemble de paramètres pour faciliter cette nouvelle connexion d’accès distant

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    [-HostName <string>]  [-UserName <string>]  [-KeyFilePath <string>]

    Ce nouvel ensemble de paramètres changera probablement mais pour l’instant, il vous permet de créer des sessions PowerShell SSH, avec lesquelles vous pouvez interagir depuis la ligne de commande, ou sur lesquelles vous pouvez appeler des commandes et des scripts. Vous spécifiez l’ordinateur cible avec le paramètre HostName et vous fournissez le nom d’utilisateur avec UserName. Lors de l’exécution interactive des applets de commande sur la ligne de commande PowerShell, un mot de passe vous est demandé. Vous pouvez cependant aussi utiliser l’authentification par clé SSH et fournir un chemin de fichier de clé privée avec le paramètre KeyFilePath.

    Nom : powershell.png
Affichages : 5544
Taille : 222,7 Ko

    Informations générales sur l’installation

    SSH doit être installé sur tous les ordinateurs. Vous devez installer le client (ssh.exe) et le serveur (sshd.exe) pour pouvoir tester l’accès distant vers et depuis les ordinateurs. Pour Windows, vous devez installer OpenSSH Win32 à partir de GitHub. Pour Linux, vous devrez installer SSH (y compris le serveur sshd) approprié pour votre plateforme. Il vous faut également une version ou un package récent de PowerShell, provenant de GitHub et ayant la fonctionnalité d’accès distant SSH. Les sous-systèmes SSH sont utilisés pour établir un processus PowerShell sur l’ordinateur distant ; le serveur SSH doit être configuré pour cela. De plus, vous devez activer l’authentification par mot de passe et éventuellement l’authentification basée sur une clé.

    Configuration sur un ordinateur Windows
    1. Installer la dernière version de PowerShell Core pour Windows
      Vous pouvez savoir si elle dispose de la prise en charge de l’accès distant SSH en examinant les ensembles de paramètres pour New-PSSession
      Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      PS> Get-Command New-PSSession -syntax
      New-PSSession [-HostName] <string[]> [-Name <string[]>] [-UserName <string>] [-KeyFilePath <string>] [-SSHTransport] [<CommonParameters>]
    2. Installez la dernière version de OpenSSH Win32 depuis GitHub en utilisant les instructions d’installation
    3. Ouvrez le fichier sshd_config à l’emplacement où vous avez installé OpenSSH Win32 :
      • Vérifiez que l’authentification par mot de passe est activée : PasswordAuthentication yes
      • Ajoutez une entrée de sous-système PowerShell et remplacez c:/program files/powershell/6.0.0/pwsh.exe par le chemin correct vers la version que vous voulez utiliser
        Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
        Subsystem    powershell c:/program files/powershell/6.0.0/pwsh.exe -sshs -NoLogo -NoProfile
      • Vous pouvez éventuellement activer l’authentification par clé : PubkeyAuthentication yes
    4. Redémarrez le service sshd : Restart-Service sshd
    5. Ajoutez le chemin où OpenSSH est installé à votre variable d’environnement PATH :
      • Il devrait s’agir de C:\Program Files\OpenSSH\
      • Ceci permet au système de trouver ssh.exe


    Configuration sur un ordinateur Linux (Ubuntu 14.04)
    1. Installez la dernière version PowerShell pour Linux à partir de GitHub
    2. Installez Ubuntu SSH si nécessaire
      Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      sudo apt install openssh-client
      sudo apt install openssh-server
    3. Ouvrez le fichier sshd_config à l’emplacement /etc/ssh
      • Vérifiez que l’authentification par mot de passe est activée : PasswordAuthentication yes
      • Ajoutez une entrée de sous-système PowerShell
        Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
        Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile
      • Vous pouvez éventuellement activer l’authentification par clé : PubkeyAuthentication yes
    4. Redémarrez le service sshd
      Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
      sudo service sshd restart


    Configuration sur un ordinateur MacOS
    1. Installez la dernière version de PowerShell pour MacOS
    2. Vérifiez que l’accès distant SSH est activé en suivant ces étapes :
      • Ouvrez System Preferences
      • Cliquez sur Sharing
      • Vérifiez Remote Login, qui doit être Remote Login: On
      • Autorisez l’accès aux utilisateurs appropriés
    3. Ouvrez le fichier sshd_config à l’emplacement /private/etc/ssh/sshd_config
    4. Redémarrez le service sshd
      Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      sudo launchctl stop com.openssh.sshd
      sudo launchctl start com.openssh.sshd

    Exemple d’accès distant PowerShell

    Le moyen le plus simple de tester l’accès distant est simplement de l’essayer sur un seul ordinateur. Dans l’exemple proposé par Microsoft, l’ingénieur a créé une session à distance avec le même ordinateur sur une zone Linux. Notez qu’il a utilisé des applets de commande PowerShell à partir d’une invite de commandes : nous voyons donc des invites SSH demandant de vérifier l’ordinateur hôte ainsi que des demandes de mot de passe. Vous pouvez faire de même sur un ordinateur Windows pour vérifier que l’accès distant fonctionne, puis établir un accès distant entre des ordinateurs en changeant simplement le nom d’hôte.

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    #
    # Linux to Linux
    #
    PS /home/TestUser> $session = New-PSSession -HostName UbuntuVM1 -UserName TestUser
    The authenticity of host 'UbuntuVM1 (9.129.17.107)' cannot be established.
    ECDSA key fingerprint is SHA256:2kCbnhT2dUE6WCGgVJ8Hyfu1z2wE4lifaJXLO7QJy0Y.
    Are you sure you want to continue connecting (yes/no)?
    TestUser@UbuntuVM1s password:
     
    PS /home/TestUser> $session
     
     Id Name            ComputerName    ComputerType    State         ConfigurationName     Availability
     -- ----            ------------    ------------    -----         -----------------     ------------
      1 SSH1            UbuntuVM1       RemoteMachine   Opened        DefaultShell             Available
     
    PS /home/TestUser> Enter-PSSession $session
     
    [UbuntuVM1]: PS /home/TestUser> uname -a
    Linux TestUser-UbuntuVM1 4.2.0-42-generic 49~14.04.1-Ubuntu SMP Wed Jun 29 20:22:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
     
    [UbuntuVM1]: PS /home/TestUser> Exit-PSSession
     
    PS /home/TestUser> Invoke-Command $session -ScriptBlock { Get-Process powershell }
     
    Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName                    PSComputerName
    -------  ------    -----      -----     ------     --  -- -----------                    --------------
          0       0        0         19       3.23  10635 635 powershell                     UbuntuVM1
          0       0        0         21       4.92  11033 017 powershell                     UbuntuVM1
          0       0        0         20       3.07  11076 076 powershell                     UbuntuVM1
     
     
    #
    # Linux to Windows
    #
    PS /home/TestUser> Enter-PSSession -HostName WinVM1 -UserName PTestName
    PTestName@WinVM1s password:
     
    [WinVM1]: PS C:\Users\PTestName\Documents> cmd /c ver
     
    Microsoft Windows [Version 10.0.10586]
     
    [WinVM1]: PS C:\Users\PTestName\Documents>
     
    #
    # Windows to Windows
    #
    C:\Users\PSUser\Documents>pwsh.exe
    PowerShell
    Copyright (c) Microsoft Corporation. All rights reserved.
     
    PS C:\Users\PSUser\Documents> $session = New-PSSession -HostName WinVM2 -UserName PSRemoteUser
    The authenticity of host 'WinVM2 (10.13.37.3)' can't be established.
    ECDSA key fingerprint is SHA256:kSU6slAROyQVMEynVIXAdxSiZpwDBigpAF/TXjjWjmw.
    Are you sure you want to continue connecting (yes/no)?
    Warning: Permanently added 'WinVM2,10.13.37.3' (ECDSA) to the list of known hosts.
    PSRemoteUser@WinVM2's password:
    PS C:\Users\PSUser\Documents> $session
     
     Id Name            ComputerName    ComputerType    State         ConfigurationName     Availability
     -- ----            ------------    ------------    -----         -----------------     ------------
      1 SSH1            WinVM2          RemoteMachine   Opened        DefaultShell             Available
     
     
    PS C:\Users\PSUser\Documents> Enter-PSSession -Session $session
    [WinVM2]: PS C:\Users\PSRemoteUser\Documents> $PSVersionTable
     
    Name                           Value
    ----                           -----
    PSEdition                      Core
    PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
    SerializationVersion           1.1.0.1
    BuildVersion                   3.0.0.0
    CLRVersion
    PSVersion                      6.0.0-alpha
    WSManStackVersion              3.0
    PSRemotingProtocolVersion      2.3
    GitCommitId                    v6.0.0-alpha.17
     
     
    [WinVM2]: PS C:\Users\PSRemoteUser\Documents>

    Problème connu : la commande sudo ne fonctionne pas dans la session à distance sur un ordinateur Linux.

    Source : Microsoft

    Voir aussi :

    Meltdown et Spectre : un outil PowerShell est disponible, il permet de faire l'état des lieux des protections sous Windows
    Microsoft annonce la disponibilité générale de PowerShell Core 6.0, la première version de la nouvelle édition multiplateforme de PowerShell
    Microsoft annonce la disponibilité de PowerShell Module Browser, une application Web de recherche de cmdlets
    Microsoft annonce la disponibilité de la version 1.0 de l'extension PowerShell pour Visual Studio Code sur Windows, macOS et Linux
    Symantec annonce une utilisation croissante de scripts PowerShell dans les attaques, plus de 100 familles de menaces analysées utilisaient PowerShell
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Responsable .NET & Magazine

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    juillet 2016
    Messages
    2 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juillet 2016
    Messages : 2 447
    Points : 9 801
    Points
    9 801
    Billets dans le blog
    22

    Par défaut

    A noter une chose importante. Depuis la mise à jour April Update pour Windows 10 (1803), un client OpenSSH est installé par défaut.

    Il est aussi possible d'installer un serveur OpenSSH en se rendant dans les paramètres, applications, ajout de fonctionnalités Windows.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : octobre 2016
    Messages : 4
    Points : 4
    Points
    4

    Par défaut

    Bonne nouvelle pour les adeptes des deux monde (Linux[Shell] et Windows[Powershell]).

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    février 2012
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : février 2012
    Messages : 242
    Points : 441
    Points
    441

    Par défaut

    Merci pour ces infos et ce petit tuto d'inter administration entre les OS

    j'attendais ces possibilités avec impatience pour notre infrastructure et la sécurisation des connections par clé SSH
    ça va me faire avancer sur un vieux projet

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    octobre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : octobre 2016
    Messages : 4
    Points : 4
    Points
    4

    Par défaut

    Citation Envoyé par 6ratgus Voir le message
    Merci pour ces infos et ce petit tuto d'inter administration entre les OS

    j'attendais ces possibilités avec impatience pour notre infrastructure et la sécurisation des connections par clé SSH
    ça va me faire avancer sur un vieux projet
    Bienvenue dans cette nouvelle offre 6ratgus.

Discussions similaires

  1. Des chercheurs utilisent NAO pour communiquer avec des autistes
    Par Stéphane le calme dans le forum Actualités
    Réponses: 3
    Dernier message: 22/03/2013, 16h45
  2. Utiliser JavaFX pour créer/modifier des vidéos
    Par robert45 dans le forum JavaFX
    Réponses: 2
    Dernier message: 14/02/2013, 14h28
  3. Réponses: 1
    Dernier message: 13/10/2011, 14h54
  4. [ADO]Utiliser OpenSchema pour le listing des champs d'une table
    Par bruce-willis dans le forum C++Builder
    Réponses: 0
    Dernier message: 10/03/2008, 10h24
  5. Réponses: 2
    Dernier message: 12/04/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo