È possibile aprire una sessione SSH in PowerShell? Attualmente uso PuTTY ma sarebbe bello se ciò non fosse necessario.
È possibile aprire una sessione SSH in PowerShell? Attualmente uso PuTTY ma sarebbe bello se ciò non fosse necessario.
Risposte:
Naturalmente non è integrato, ma poiché Powershell può fare qualsiasi cosa .Net può fare, c'è un modo.
La soluzione a pagamento sarebbe / n NetCmdlet di Software.
La soluzione gratuita sarebbe utilizzare i suggerimenti di questo post sul blog.
Ho scritto un modulo per gestire le sessioni SSH da PowerShell, basato sulla libreria SSH.NET disponibile su CodePlex. Ha New-SshSession per creare connessioni (sono supportate più destinazioni utilizzando credenziali diverse), quindi è possibile utilizzare Invoke-SshCommand per eseguire comandi su qualsiasi numero di host di destinazione. C'è anche un Enter-SshSession che ha una shell interattiva di base.
L'articolo è qui .
Joakim
Scarica OpenSSH per Windows e scegli di installare solo il client durante l'installazione. L'intero programma di installazione incluso il server è inferiore a 3 MB e il client funziona perfettamente.
Sto ancora pubblicando una risposta a questa domanda, perché ho trovato la risposta accettata non adatta alle mie esigenze (solo una soluzione a pagamento o un'altra che non gestisce bene il terminale).
Quindi la soluzione ovvia a questo problema è installare cygwin. Esegui un'installazione minima se vuoi solo ssh, ma poiché powershell fornisce un livello base di compatibilità con le shell * nix (i comandi di base sono ancora lì, "/" per le directory, ecc.), È davvero possibile usare roba cygwin all'interno di Powershell.
Esiste una soluzione SSH PowerShell alternativa (gratuita), che utilizza un'implementazione della libreria più recente, vedere vBlog >> Client SSH che utilizza PowerShell
Se il computer di destinazione è una finestra di Windows, è possibile utilizzare invece Remoting di PowerShell .
Non è assolutamente lo stesso di SSH. Ci sono pro (riportare oggetti sul filo!) E contro (e se il target fosse Linux?).
http://www.powershellinside.com/powershell/ssh/ Gratuito per l'uso personale.
Uso Git http://git-scm.com/downloads
Include una serie di altri strumenti come SCP e altri utili.
Un modo per ottenere un ottimo client ssh nativo è installare git da GitHub ( https://windows.github.com/ ).
Crea un collegamento a una finestra posh-git con tutti i percorsi impostati correttamente per usare git in PowerShell. Ciò viene fornito automaticamente con i binari ssh e scp nel percorso.
Non sono sicuro di quale sia l'implementazione, ma ha un aspetto simile a Linux, cioè non sembra che sia basato su .Net o usa i comandi di PowerShell.
Sta raccogliendo la chiave privata che ho configurato nel formato $ home / .ssh / in openssh e forse qualcuno può confermare. Sembra che sia openssh.
Per renderlo ancora migliore, l'ho integrato nel mio normale profilo PowerShell effettuando quanto segue nel mio profilo $. Ciò significa che non devo usare la scorciatoia di Github.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH È un modulo gratuito di Poswershell Magazine che funziona con Powershell 3.0 e versioni successive.
È disponibile su http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
La documentazione completa è fornita al link sopra. In uno script non vuoi davvero connessioni interattive, quindi sono due passaggi. 1 ° creare la sessione. 2o comando di invio.
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
La prima sessione creata avrà un indice di 0.
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
È consigliabile mettere la creazione della connessione in un tentativo try e convalidare la sessione esistente prima di eseguire un comando. In questo modo l'interazione con i server Linux dall'interno di uno script PowerShell funziona bene.
SSH e SFTP rappresentano senza dubbio gli standard del settore nell'applicazione di accesso remoto sicuro. Fortunatamente è possibile che stabilire una connessione sia davvero semplice e veloce. Purtroppo la verità è che ci sono molte possibilità di perdere tempo con la risoluzione dei problemi.
Sfortunatamente Windows non ha a bordo un client ssh standard o un software Deamon.
Ciò si traduce in uno zoo di implementazioni più o meno bizzarre, open source, freeware, shareware e così via ... a volte a volte non funziona.
All'interno di Windows, è una cosa da soldi. Microsoft non vuole che molti utenti si connettano facilmente a 1 computer con licenza. Vogliono vendere le proprie soluzioni. Quindi non offrono nativi SSL.
cygwin è la migliore soluzione disponibile.
putty / plink / winscp come software client. va bene anche per gli script.
ci sono demoni ssh per l'integrazione di Windows, ma le soluzioni sono più o meno instabili.
il modo più stabile per avere ssh deamon su windwos in esecuzione è eseguirlo all'interno di una VM Linux, può essere realizzato con una piccola distribuzione Linux.