El protocolo SSH (Secure Shell – Interprete de ordenes seguro) es indiscutiblemente uno de los protocolos más usados cuando hemos de acceder remotamente a otro equipo a través de la red.
Para usar SSH en entornos Windows debíamos usar un cliente como OpenSSH o Putty para acceder a los equipos cliente de forma segura pero ahora Microsoft ha anunciado que incorporará módulos de SSH en su ya conocida y potente consola de Windows PowerShell.
En este análisis veremos cómo instalar y usar SSH desde la consola de PowerShell en Windows 10.
- Contar con Windows Management Framework 5 el cual podemos descargar e instalar desde el siguiente enlace:
- Instalar el modulo PoSH-SSH desde Windows PowerShell
1. Buscar modulo PoSH-SSH
En primer lugar usaremos el siguiente cmdlet para ubicar el paquete base de SSH:
Find-Module PoSH-SSHEl resultado obtenido será el siguiente:
Una vez tengamos la ubicación del módulo PoSH-SSH procedemos a su instalación.
2. Instalar modulo PoSH-SSH
Para realizar el proceso de instalación de PoSH-SSH usaremos inicialmente el siguiente cmdlet:
Fin-Module PoSH-SSH | Install-Module
A continuación usaremos el siguiente cmdlet para la respectiva validación:
Get-Module PoSH-SSHAhora con el cmdlet Install-Module Posh-SSH para iniciar el proceso de instalación de PoSH-SSH:
3. Validación del módulo PoSH-SSH
Una vez hayamos instalado el módulo PoSH-SSH podemos usar el siguiente cmdlet para comprobar las diferentes opciones que tenemos para la conexión por SSH:
get-command -Module Posh-SSH
4. Iniciar sesión SSH en Windows PowerShell
Para acceder a través del protocolo SSH usando PowerShell debemos ingresar el siguiente cmdlet:
New-SSHSession -ComputerName "Ip o nombre del equipo" -Credential (Get-Credential)Veremos que se despliega la siguiente ventana donde debemos ingresar las credenciales de acceso:
Pulsamos Aceptar para iniciar el proceso de conexión.
En este punto definimos si confiar en la clave de seguridad, pulsamos Y (yes) y estaremos conectados con SSH a la IP 192.168.0.37 la cual es un equipo con Ubuntu 16.
Como vemos el estado es conectado de forma correcta (True) a la dirección 192.168.0.37 y a partir de este punto podemos hace todas las gestiones necesarias sobre el equipo remoto.
5. Opciones de diversos módulos usando SSH en PowerShell
Los principales módulos que podemos usar en PowerShell asociados a SSH son los siguientes:
Este módulo nos permite crear una nueva conexión SSH a sistemas operativos compatibles, la sintaxis a usar es:
New-SshSession -ComputerName (Ip o nombre del equipo)Así crearemos nuevas conexiones.
Este módulo nos permite correr diversos comandos en las sesiones que tenemos abiertas. Podemos usar la siguiente sintaxis para desplegar información acerca de la sesión abierta:
Invoke-SshCommand -InvokeOnAll -Command 'uname -a'
Podemos ver información sobre el nombre del host al cual estamos conectados vía SSH, el estado de salida, etc.
Con este módulo podemos ver todas las variables de las sesiones SSH abiertas.
Podemos ver el ID de las sesiones abiertas, el nombre del host y el estado actual de la conexión.
Con este parámetro podemos cerrar la sesión actual de SSH, podemos adicionar el parámetro-RemoveAll para cerrar todas las conexiones activas.
Para correr un comando en el equipo al cual estamos conectados vía SSH debemos usar la siguiente sintaxis:
$SshResults = Invoke-SshCommand -InvokeOnAll -Command 'Comando a ejecutar'Veremos que podemos ejecutar comandos en el equipo remoto vía SSH.
Como vemos contamos con esta gran herramienta de SSH a través de PowerShell para conectarnos a distintos equipos y de esta manera brindar ayuda y soporte en los casos que sea requerido sin requerir aplicaciones de terceros. Si quieres avanzar en el uso y configuraciones de SSH no pierdas su manual completo para entenderlo más a fondo.