Vraag SSH via PowerShell


Is het mogelijk om een ​​SSH-sessie in PowerShell te openen? Momenteel gebruik ik PuTTY maar het zou leuk zijn als dat niet nodig was.


52
2018-02-18 17:27


oorsprong


Ik weet dat het niet van nature wordt ondersteund, maar ik zou ook graag een oplossing zien. - egorgry
wat is er mis met het gewoon aanroepen van putty.exe (of plink.exe) vanaf de opdrachtregel? - Javier
Javier: Laten we beginnen met plink wezen enkel en alleen een SSH-client en volledig ontbreekt de terminal emulatie functies. - grawity
+1, ik zou zelf graag een oplossing zien. En voor het grootste deel haat ik putty zo veel. (SecureCRT-gebruiker) - Urda
Microsoft kondigt toekomstige ondersteuning aan voor SSH: blogs.msdn.com/b/powershell/archive/2015/06/03/... - nw.


antwoorden:


Niet ingebouwd natuurlijk, maar omdat Powershell alles kan doen .Net kan doen, er is een manier.

Betaalde oplossing zou zijn / n NetCmdlets van software.

Gratis oplossing zou de suggesties van gebruiken deze blog post.


19
2018-02-18 17:39





Ik heb een module geschreven voor het omgaan met SSH-sessies van PowerShell, gebaseerd op de SSH.NET-bibliotheek op CodePlex. Het heeft NewSshSession om verbindingen te maken (meerdere doelen met verschillende inloggegevens worden ondersteund), en vervolgens kunt u Invoke-SshCommand gebruiken om opdrachten uit te voeren tegen een willekeurig aantal doelhosts. Er is zelfs een Enter-SshSession met een zeer eenvoudige, interactieve shell.

Het artikel is hier.

Joakim


9
2018-04-27 09:01





Download OpenSSH voor Windows en kies ervoor om alleen de client te installeren tijdens de installatie. Het volledige installatieprogramma inclusief de server is minder 3MB en de client werkt prima.


6
2017-09-05 13:28



Er zijn veel waarschuwingen in dat project over de installer die de System PATH-variabele op Windows 7 & 8 stompt - wees op uw hoede! - Patrick M


Ik post nog steeds een antwoord op deze vraag, omdat ik vond dat het geaccepteerde antwoord helemaal niet in mijn behoeften voorziet (alleen een betaalde oplossing of een ander die de terminal niet goed afhandelt).

Dus de voor de hand liggende oplossing voor dit probleem is het installeren van cygwin. Voer een minimale installatie uit als je gewoon ssh wilt, maar omdat powershell een basisniveau biedt voor compatibiliteit met * nix shells (standaardcommando's zijn er nog steeds, "/" voor mappen, enz.), Is het echt mogelijk om cygwin-spullen te gebruiken in Powershell.

Cygwin installeer hier


2
2017-10-13 20:49



Cygwin? Bleck! Kan net zo goed een VM aanzetten ... - Urda
Hoe komt het ? ssh is een Windows-uitvoerbaar bestand. Als je niet wilt samenwerken met Unix-y-dingen, zou het geen verrassing moeten zijn dat je daarvoor een aantal libs moet installeren. - raph.amiard
Zie het antwoord van Ameer Deen, ik denk dat dit de beste oplossing is en werkt geweldig. - Hosh Sadiq
@HoshSadiq Uit de OpenSSH for Windows-beschrijving: "Een installatieprogramma voor een minimale installatie van de Cygwin-omgeving geschikt voor het uitvoeren van een OpenSSH-server op het Windows-platform." - Douglas Ludlow


Er is een alternatieve (gratis) PowerShell SSH-oplossing met een nieuwere bibliotheekimplementatie, zie vBlog >> SSH-client met PowerShell


2
2018-03-06 11:01



dode link. Kun je dit oplossen? - Bastien Vandamme


Als de doelcomputer een Windows-box is, kunt u deze gebruiken PowerShell Remoting, in plaats daarvan.

Het is zeker niet hetzelfde als SSH. Er zijn professionals (die voorwerpen over de draad brengen!) En nadelen (wat als het doel Linux is?).


1
2018-02-20 19:55





http://www.powershellinside.com/powershell/ssh/ Gratis voor persoonlijk gebruik.


1
2018-02-14 06:01





Ik gebruik Git http://git-scm.com/downloads 

Bevat een groot aantal andere tools zoals SCP en dergelijke die ook nuttig zijn.


1
2018-05-08 19:29





Een manier om een ​​zeer goede native ssh-client te krijgen, is git te installeren vanaf GitHub (https://windows.github.com/).

Het maakt een snelkoppeling naar een posh-git-venster met alle paden correct ingesteld om git in powershell te gebruiken. Dat komt automatisch met ssh- en scp-binaire bestanden in het pad.

Ik weet niet zeker wat de implementatie is, maar het heeft wel een Linux-achtig gevoel, dat wil zeggen dat het niet het gevoel heeft dat het op .Net is gebaseerd of powershell-commando's gebruikt.

Het neemt de privésleutel op die ik heb geconfigureerd in $ home / .ssh / in openssh-indeling en misschien kan iemand dit bevestigen. Het voelt alsof het openssh is.

Om het nog beter te maken, heb ik het in mijn normale powershell-profiel geïntegreerd door het volgende te doen in mijn $ profiel. Dat betekent dat ik de snelkoppeling van github niet hoef te gebruiken.

. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1") . (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")


1
2017-08-06 07:03





Posh-SSH Is een gratis module van Poswershell Magazine die werkt voor Powershell 3.0 en hoger.

Het is verkrijgbaar bij http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/

Volledige documentatie is te vinden op de link hierboven. In een script wil je niet echt een interactieve verbinding, dus het zijn twee stappen. 1e maak de sessie. 2e verzendopdrachten.

$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey

De eerste sessie die u maakt, heeft een index van 0.

Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"

Het is het beste om de verbindingscreatie in een try-catch te plaatsen en de sessie te valideren voordat u een opdracht uitvoert. Hierdoor werkt de interactie met Linux-servers vanuit een Powershell-script goed.


1
2017-10-08 17:25





SSH en SFTP vertegenwoordigen ongetwijfeld de industriestandaard in beveiligde externe toegangstoepassingen. Gelukkig is het mogelijk dat het opzetten van een verbinding heel snel en eenvoudig kan zijn. Helaas is de waarheid dat er veel mogelijkheden zijn om tijd te verspillen met het oplossen van problemen.

Helaas heeft Windows geen standaard ssh-client of deamon-software aan boord.

Dit resulteert in een dierentuin met meer of minder freaky implementaties, open source, freeware, shareware enzovoort ... soms werkt het soms niet.

Binnen Windows is het een geldding. Microsoft wil gewoon niet dat veel gebruikers eenvoudig verbinding kunnen maken met een eenvoudige computer. Ze willen hun eigen oplossingen verkopen. Dus bieden ze geen native ssl aan.

cygwin is de beste beschikbare oplossing.

putty / plink / winscp als clientsoftware. het is ook goed voor scripting.

er zijn ssh-deamons voor windows-integratie, maar de oplossingen zijn min of meer instabiel.

de meest stabiele manier om ssh deamon te laten draaien op windwos is om het binnen een Linux VM te laten draaien, kan worden gerealiseerd met een kleine linux distibutie.


-2
2017-11-12 13:58



Dit is niet echt antwoord de OP's vraag. Kun je je vraag bewerken om aan te geven waarom cygwin een oplossing is voor de vraag van het OP? - Twisty Impersonator
OP vraagt ​​niet om andere alternatieven dan PowerShell-gerelateerde oplossingen. - cychoi