Frage SSH über PowerShell


Ist es möglich, eine SSH-Sitzung in PowerShell zu öffnen? Derzeit benutze ich PuTTY, aber es wäre schön, wenn das nicht erforderlich wäre.


52
2018-02-18 17:27


Ursprung


Ich weiß, dass es nicht nativ unterstützt wird, aber ich würde auch gerne eine Lösung sehen. - egorgry
Was ist falsch, wenn Sie putty.exe (oder plink.exe) nur über die Befehlszeile aufrufen? - Javier
Javier: Lass uns anfangen mit plink sein nur ein SSH-Client und komplett ohne die Terminal-Emulationsfunktionen. - grawity
+1, ich würde gerne selbst eine Lösung sehen. Und meistens hasse ich Putty so sehr. (SecureCRT Benutzer) - Urda
Microsoft kündigt zukünftige Unterstützung für SSH an: blogs.msdn.com/b/powershell/archiv/2015/06/03/... - nw.


Antworten:


Natürlich nicht eingebaut, aber da Powershell alles kann, was Net tun kann, gibt es einen Weg.

Bezahlte Lösung wäre / n Software NetCmdlets.

Freie Lösung würde die Vorschläge von verwenden dieser Blogbeitrag.


19
2018-02-18 17:39





Ich habe ein Modul für den Umgang mit SSH-Sitzungen von PowerShell geschrieben, das auf der SSH.NET-Bibliothek von CodePlex basiert. Es verfügt über New-SshSession, um Verbindungen zu erstellen (mehrere Ziele mit unterschiedlichen Anmeldeinformationen werden unterstützt). Anschließend können Sie mithilfe von Invoke-SshCommand Befehle für beliebig viele Zielhosts ausführen. Es gibt sogar eine Enter-SshSession mit einer sehr einfachen, interaktiven Shell.

Der Artikel ist Hier.

Joakim


9
2018-04-27 09:01





Herunterladen OpenSSH für Windows und wählen Sie während der Installation nur den Client zu installieren. Das gesamte Installationsprogramm einschließlich des Servers ist weniger als 3 MB und der Client funktioniert einwandfrei.


6
2017-09-05 13:28



Es gibt viele Warnungen zu diesem Projekt über das Installationsprogramm, das die System PATH-Variable auf Windows 7 & 8 stempelt - seien Sie vorsichtig! - Patrick M


Ich schreibe immer noch eine Antwort auf diese Frage, weil ich die akzeptierte Antwort gefunden habe, die überhaupt meinen Bedürfnissen nicht entspricht (nur eine bezahlte Lösung oder eine andere, die das Terminal nicht gut behandelt).

Die naheliegende Lösung für dieses Problem ist die Installation von Cygwin. Führen Sie eine minimale Installation aus, wenn Sie nur ssh wollen, aber da Powershell eine grundlegende Kompatibilität mit * nix-Shells bietet (grundlegende Befehle sind immer noch vorhanden, "/" für Verzeichnisse usw.), ist es wirklich möglich, cygwin-Kram in Powershell zu verwenden.

Cygwin installieren Sie hier


2
2017-10-13 20:49



Cygwin? Bleck! Kann auch eine VM hochfeuern ... - Urda
Wieso das ? ssh ist eine Windows-kompilierte ausführbare Datei. Wenn Sie mit Unix-y-Sachen interagieren wollen, sollte es keine Überraschung sein, dass Sie einige Bibliotheken dafür installieren müssen. - raph.amiard
Siehe die Antwort von Ameer Deen, ich denke, das ist die beste Lösung hier und funktioniert super. - Hosh Sadiq
@HoshSadiq Aus der Beschreibung von OpenSSH für Windows: "Ein Installationsprogramm für eine minimale Installation der Cygwin-Umgebung, die für die Ausführung eines OpenSSH-Servers auf der Windows-Plattform geeignet ist." - Douglas Ludlow


Es gibt eine alternative (kostenlose) PowerShell SSH-Lösung, die eine neuere Bibliotheksimplementierung verwendet, siehe vBlog >> SSH-Client mit PowerShell


2
2018-03-06 11:01



toter Link. Kannst du das reparieren? - Bastien Vandamme


Wenn der Zielcomputer eine Windows-Box ist, können Sie diese verwenden PowerShell Remoting, stattdessen.

Es ist definitiv nicht dasselbe wie SSH. Es gibt Profis (bringt Objekte zurück über den Draht!) Und Nachteile (was ist, wenn das Ziel Linux ist?).


1
2018-02-20 19:55





http://www.powershellinside.com/powershell/ssh/ Kostenlos für den persönlichen Gebrauch.


1
2018-02-14 06:01





Ich benutze Git http://git-scm.com/downloads 

Enthält eine Vielzahl anderer Tools wie SCP und solche, die auch nützlich sind.


1
2018-05-08 19:29





Eine Möglichkeit, einen sehr guten nativen SSH-Client zu erhalten, besteht darin, git von GitHub zu installieren (https://windows.github.com/).

Es erstellt eine Verknüpfung zu einem Posh-Git-Fenster mit allen richtigen Pfaden, um Git in Powershell zu verwenden. Das kommt automatisch mit ssh und scp binaries im Pfad.

Ich bin mir nicht sicher, welche Implementierung es ist, aber es hat ein Linux-ähnliches Gefühl, d. H. Es fühlt sich nicht so an, als ob es .Net-basiert ist oder Powershell-Kommandos verwendet.

Es nimmt den privaten Schlüssel auf, den ich in $ home / .ssh / im opensssh Format konfiguriert habe und vielleicht kann jemand bestätigen. Es fühlt sich an, als ob es openssh ist.

Um es noch besser zu machen, habe ich es in mein reguläres Powershell-Profil integriert, indem ich in meinem $ -Profil Folgendes mache. Das bedeutet, dass ich die Verknüpfung von GitHub nicht verwenden muss.

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


1
2017-08-06 07:03





Posh-SSH Ist ein kostenloses Modul aus dem Poswershell Magazine, das für PowerShell 3.0 und höher funktioniert.

Es ist verfügbar unter http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/

Die vollständige Dokumentation finden Sie unter dem obigen Link. In einem Skript wollen Sie keine interaktiven Verbindungen, also sind es zwei Schritte. 1. Erstellen Sie die Sitzung. 2. Sende Befehle.

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

Die erste Sitzung, die Sie erstellen, hat einen Index von 0.

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

Es empfiehlt sich, die Verbindungserstellung in einen try catch zu setzen und die Sitzung vor dem Ausführen eines Befehls zu validieren. Dadurch funktioniert die Interaktion mit Linux-Servern innerhalb eines Powershell-Skripts gut.


1
2017-10-08 17:25





SSH und SFTP stellen zweifellos Industriestandard in sicherer Fernzugriffsanwendung dar. Fortunally ist es möglich, dass das Herstellen einer Verbindung wirklich schnell und einfach sein kann. Leider gibt es viele Möglichkeiten, Zeit mit der Fehlersuche zu verschwenden.

Leider hat Windows keinen Standard-SSH-Client oder eine Deamon-Software an Bord.

Dies führt zu einem Zoo von mehr oder weniger verrückten Implementierungen, Open Source, Freeware, Shareware und so weiter ... manchmal funktioniert das manchmal nicht.

In Windows ist es ein Geldding. Microsoft möchte einfach nicht, dass viele Benutzer sich einfach mit einem lizensierten Computer verbinden. Sie wollen ihre eigenen Lösungen verkaufen. So bieten sie nicht native ssl.

Cygwin ist die beste verfügbare Lösung.

putty / plink / winscp als Client-Software. es ist auch ok für das Scripting.

Es gibt SSH-Deamons für die Windows-Integration, aber die Lösungen sind mehr oder weniger instabil.

Der stabilste Weg, um ssh deamon auf windwos laufen zu lassen, ist, es in einer Linux-VM zu betreiben, die mit einer kleinen Linux-Distribution realisiert werden kann.


-2
2017-11-12 13:58



Das ist nicht wirklich Antworten die OP-Frage. Können Sie Ihre Frage bearbeiten, um anzugeben, warum Cygwin eine Lösung für die Frage des OP ist? - Twisty Impersonator
OP bittet nicht um andere Alternativen als PowerShell-bezogene Lösungen. - cychoi