Est-il possible d'ouvrir une session SSH dans PowerShell? Actuellement, j'utilise PuTTY mais ce serait bien si cela n'était pas nécessaire.
Est-il possible d'ouvrir une session SSH dans PowerShell? Actuellement, j'utilise PuTTY mais ce serait bien si cela n'était pas nécessaire.
Réponses:
Pas intégré, bien sûr, mais comme Powershell peut faire tout ce que .Net peut faire, il existe un moyen.
La solution payante serait les NetCmdlets de / n Software.
Une solution gratuite consisterait à utiliser les suggestions de cet article de blog.
J'ai écrit un module sur les sessions SSH de PowerShell, basé sur la bibliothèque SSH.NET disponible sur CodePlex. New-SshSession permet de créer des connexions (plusieurs cibles utilisant des informations d'identification différentes sont prises en charge). Vous pouvez ensuite utiliser Invoke-SshCommand pour exécuter des commandes sur un nombre quelconque d'hôtes cibles. Il y a même une Enter-SshSession qui a un shell très basique et interactif.
L'article est ici .
Joakim
Téléchargez OpenSSH pour Windows et choisissez d'installer uniquement le client lors de l'installation. Le programme d’installation complet, y compris le serveur, fait moins de 3 Mo et le client fonctionne parfaitement.
Je poste toujours une réponse à cette question, car j’ai trouvé que la réponse acceptée ne répondait pas du tout à mes besoins (seule une solution payante ou une autre solution qui ne gère pas bien le terminal).
La solution évidente à ce problème consiste donc à installer Cygwin. Effectuez une installation minimale si vous voulez simplement utiliser ssh, mais comme powershell fournit un niveau de compatibilité de base avec * nix shells (les commandes de base sont toujours là, "/" pour les répertoires, etc.), il est vraiment possible d’utiliser cygwin dans Powershell.
Il existe une solution alternative (gratuite) SSH PowerShell, utilisant une implémentation de bibliothèque plus récente, voir vBlog >> Client SSH avec PowerShell
Si l'ordinateur cible est une boîte Windows, vous pouvez utiliser plutôt PowerShell Remoting .
Ce n'est certainement pas la même chose que SSH. Il y a des avantages (ramener des objets sur le réseau!) Et des inconvénients (que se passe-t-il si la cible est Linux?).
http://www.powershellinside.com/powershell/ssh/ Gratuit pour un usage personnel.
J'utilise Git http://git-scm.com/downloads
Inclut une foule d’autres outils tels que SCP et d’autres outils utiles.
Un moyen d'obtenir un très bon client ssh natif consiste à installer git à partir de GitHub ( https://windows.github.com/ ).
Il crée un raccourci vers une fenêtre posh-git avec tous les chemins correctement définis pour utiliser git dans powershell. Cela vient automatiquement avec les binaires ssh et scp dans le chemin.
Je ne sais pas de quelle implémentation il s’agit, mais il a une sensation semblable à celle de Linux, c’est-à-dire qu’il n’a pas l’impression d’être basé sur .Net ou d’utiliser des commandlets powershell.
Il récupère la clé privée que j'ai configurée au format $ home / .ssh / au format openssh et peut-être que quelqu'un pourra le confirmer. C'est comme si c'était OpenShsh.
Pour le rendre encore meilleur, je l’ai intégré à mon profil powershell habituel en procédant comme suit dans mon profil $. Cela signifie que je n'ai pas à utiliser le raccourci de github.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH Est un module gratuit de Poswershell Magazine qui fonctionne pour Powershell 3.0 et versions ultérieures.
Il est disponible sur http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
Une documentation complète est fournie sur le lien ci-dessus. Dans un script, vous ne voulez pas vraiment de connexions interactives, il s’agit donc d’une procédure en deux étapes. 1er créer la session. 2ème envoi de commandes.
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
La première session que vous créez aura un index de 0.
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
Il est recommandé de mettre la création de connexion dans un try catch et de valider la session avant d'exécuter une commande. Cela permet de bien interagir avec les serveurs Linux à partir d'un script PowerShell.
SSH et SFTP représentent sans aucun doute la norme de l'industrie dans les applications d'accès distant sécurisé. Heureusement, il est possible d’établir une connexion facilement et rapidement. Malheureusement, la vérité est qu'il existe de nombreuses possibilités de perdre du temps avec le dépannage.
Malheureusement, Windows n’a pas de logiciel ssh standard ni de logiciel Deamon intégré.
Cela se traduit par un zoo d'implémentations plus ou moins bizarres, open source, freeware, shareware, etc., parfois même si certains ne fonctionnent pas.
Dans les fenêtres, c'est une chose d'argent. Microsoft ne veut tout simplement pas que beaucoup d'utilisateurs se connectent facilement à un seul ordinateur. Ils veulent vendre leurs propres solutions. Donc, ils n'offrent pas de SSL local.
cygwin est la meilleure solution disponible.
mastic / plink / winscp en tant que logiciel client. sa aussi ok pour les scripts.
il existe des démons ssh pour l'intégration de Windows, mais les solutions sont plus ou moins instables.
Le moyen le plus stable d’exploiter ssh deamon sur windwos est de l’exécuter dans une machine virtuelle Linux, ce qui peut être réalisé avec une petite distribution Linux.