¿Es posible abrir una sesión SSH en PowerShell? Actualmente uso PuTTY, pero sería bueno si no fuera necesario.
¿Es posible abrir una sesión SSH en PowerShell? Actualmente uso PuTTY, pero sería bueno si no fuera necesario.
Respuestas:
No está integrado, por supuesto, pero dado que Powershell puede hacer cualquier cosa que pueda hacer .Net, hay una manera.
La solución pagada sería / n NetCmdlets de Software.
La solución gratuita sería utilizar las sugerencias de esta publicación de blog.
Escribí un módulo para tratar con sesiones SSH de PowerShell, basado en la biblioteca SSH.NET que se encuentra en CodePlex. Tiene New-SshSession para crear conexiones (se admiten varios objetivos con diferentes credenciales), y luego puede usar Invoke-SshCommand para ejecutar comandos en cualquier número de hosts de destino. Incluso hay una Enter-SshSession que tiene un shell muy básico e interactivo.
El articulo esta aqui .
Joakim
Descarga OpenSSH para Windows y elige instalar solo el cliente durante la instalación. El instalador completo, incluido el servidor, tiene menos 3 MB y el cliente funciona bien.
Todavía estoy publicando una respuesta a esta pregunta, porque encontré que la respuesta aceptada no satisface mis necesidades (solo una solución paga u otra que no maneja bien el terminal).
Entonces, la solución obvia a este problema es instalar cygwin. Realice una instalación mínima si solo desea ssh, pero dado que powershell proporciona un nivel básico de compatibilidad con shells * nix (los comandos básicos siguen ahí, "/" para directorios, etc.), es realmente posible usar cosas de cygwin dentro de Powershell.
Existe una solución alternativa (gratuita) de PowerShell SSH, que usa una implementación de biblioteca más reciente, consulte vBlog >> Cliente SSH que usa PowerShell
Si la máquina de destino es un cuadro de Windows, puede utilizar PowerShell Remoting en su lugar.
Definitivamente no es lo mismo que SSH. Hay ventajas (traer objetos de vuelta por el cable) y desventajas (¿y si el objetivo es Linux?
http://www.powershellinside.com/powershell/ssh/ Gratis para uso personal.
Yo uso Git http://git-scm.com/downloads
Incluye una gran cantidad de otras herramientas como SCP y otras que también son útiles.
Una forma de obtener un cliente ssh nativo muy bueno es instalar git desde GitHub ( https://windows.github.com/ ).
Crea un acceso directo a una ventana elegante con todas las rutas configuradas correctamente para usar git en powershell. Eso viene automáticamente con binarios ssh y scp en la ruta.
No estoy seguro de qué implementación es, pero tiene una sensación similar a Linux, es decir, no parece que esté basado en .Net o use comandos de PowerShell.
Está recogiendo la clave privada que he configurado en $ home / .ssh / en formato openssh y tal vez alguien pueda confirmar. Se siente como si fuera openssh.
Para hacerlo aún mejor, lo he integrado en mi perfil normal de PowerShell haciendo lo siguiente en mi $ profile. Eso significa que no tengo que usar el atajo de github.
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1")
. (Resolve-Path "$env:LOCALAPPDATA\GitHub\PoshGit_*\profile.example.ps1")
Posh-SSH es un módulo gratuito de la revista Poswershell que funciona para Powershell 3.0 y superior.
Está disponible en http://www.powershellmagazine.com/2014/07/03/posh-ssh-open-source-ssh-powershell-module/
La documentación completa se proporciona en el enlace de arriba. En un script, realmente no quieres conexiones interactivas, por lo que son dos pasos. Primero crea la sesión. Segundo envío de comandos.
$ServerConnection = New-SSHSession -KeyFile $keyLocation -ComputerName $sshComp -Credential $mycreds -AcceptKey
La primera sesión que cree tendrá un índice de 0.
Invoke-SSHCommand -Index 0 -Command "some command to run over ssh"
Se recomienda poner la creación de la conexión en un intento de captura y validar la sesión existente antes de ejecutar un comando. Esto hace que interactuar con servidores Linux desde el interior de un script de PowerShell funcione bien.
SSH y SFTP sin duda representan el estándar de la industria en aplicaciones de acceso remoto seguro. Afortunadamente, es posible que establecer una conexión pueda ser realmente rápido y fácil. Desafortunadamente, la verdad es que hay muchas posibilidades de perder el tiempo con la resolución de problemas.
Desafortunadamente, Windows no tiene un cliente ssh estándar o un software deamon a bordo.
Esto da como resultado un zoológico de implementaciones más o menos extrañas, código abierto, freeware, shareware, etc. Algunas veces los sistemas no funcionan.
Dentro de Windows, es una cosa de dinero. Microsoft simplemente no quiere que muchos usuarios se conecten fácilmente a una computadora con licencia. Quieren vender sus propias soluciones. Por lo tanto, no ofrecen SSL nativo.
Cygwin es la mejor solución disponible.
putty / plink / winscp como software de cliente. También está bien para secuencias de comandos.
Hay demonios ssh para la integración de Windows, pero las soluciones son más o menos inestables.
la forma más estable de ejecutar ssh deamon en windwos es ejecutarlo dentro de una máquina virtual Linux, se puede realizar con una pequeña distribución de Linux.