Conectar PowerShell mediante SSH

Con PowerShell SSH, puedes acceder y gestionar sistemas remotos desde prácticamente cualquier lugar. SSH también ofrece detalladas funciones de registro que permiten una supervisión y un seguimiento exhaustivos de las actividades en el servidor.

Requisitos para utilizar PowerShell SSH

La integración de SSH en Windows PowerShell te brinda la capacidad de establecer conexiones SSH a sistemas remotos y ejecutar comandos SSH en un script de PowerShell. Esto facilita la gestión y automatización de tareas en infraestructuras de TI distribuidas, especialmente en un entorno heterogéneo donde coexisten sistemas tanto Windows como no Windows.

Para utilizar PowerShell SSH, debes cumplir los siguientes requisitos:

  • Instalar PowerShell: asegúrate de que PowerShell v6+ está instalado en tu ordenador local. PowerShell suele venir preinstalado en Windows, pero debes comprobar que estás utilizando una versión que ofrezca compatibilidad con SSH.
  • Cliente SSH: necesitas un cliente SSH en tu entorno PowerShell para establecer conexiones SSH. En Windows 10/11 y Windows Server 2019, OpenSSH está disponible de forma predeterminada. Si utilizas una versión anterior de Windows, es posible que debas instalar OpenSSH manualmente.
  • Servidor SSH: el servidor SSH es el servidor de destino al que hay que conectarse. Puede ser un servidor Linux, un dispositivo de red u otro host con capacidad SSH.
  • Acceso a la red: tu ordenador local debe tener acceso a la red y ser capaz de alcanzar el servidor SSH remoto. El puerto 22 debe estar abierto para SSH en las reglas del cortafuegos.
  • Módulos PowerShell: existen módulos de PowerShell que han sido desarrollados específicamente para el uso de SSH, como el módulo “PSSession” o “Posh-SSH”. Debes comprobar que el módulo correspondiente está instalado en tu sistema para poder utilizar la funcionalidad SSH en PowerShell.
  • Derechos: necesitas derechos de administrador o permisos ampliados y una contraseña o clave SSH para establecer conexiones SSH desde tu ordenador local y acceder al servido remoto.
Servidores dedicados
Rendimiento a través de innovación
  • Tu propio servidor en un hardware dedicado
  • Integración en el cloud y facturación por minuto
  • Respaldados por procesadores Intel® Xeon® y AMD

Cómo usar PowerShell SSH paso a paso

Antes de poder utilizar Secure Shell (SSH) en PowerShell, debes configurar el servidor OpenSSH. A continuación, podrás iniciar la sesión SSH de PowerShell y ejecutar comandos en el sistema remoto.

Paso 1. Instala OpenSSH

Haz clic en el menú de inicio o introduce “PowerShell” en la barra de búsqueda. Selecciona Run as administrator. Se abrirá Windows PowerShell. Puedes utilizar el siguiente comando PowerShell para instalar la función OpenSSH en tu ordenador Windows:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
powershell

Paso 2. Inicia el servicio OpenSSH

Una vez finalizada la instalación, podrás iniciar el servicio OpenSSH:

Start-Service sshd
powershell

Puedes comprobar si el servicio OpenSSH se está ejecutando:

Get-Service sshd
powershell

El estado Running indica que sshd se está ejecutando correctamente.

powershell-get-service-ssh.png
Get-Service sshd comprueba la ejecución del servicio SSH.

Paso 3. Inicia automáticamente el servicio de servidor SSH

Para activar el servicio de servidor OpenSSH cada vez que se inicie Windows, puedes introducir el siguiente comando:

Set-Service -Name sshd -StartupType 'Automatic'
powershell

Paso 4. Configura el cortafuegos

Si el cortafuegos de Windows está activo, debes añadir una regla para permitir el tráfico SSH en el puerto 22 (el puerto SSH por defecto).

New-NetFirewallRule -Name 'OpenSSH-Server' -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
powershell

Paso 5. Establece una conexión SSH

Ahora podrás iniciar sesión con tu servidor SSH desde otro dispositivo. Para ello, abre PowerShell en tu PC cliente e introduce el comando SSH con el nombre de usuario y la dirección del servidor.

ssh username@servername
powershell

Sustituye “username” por tu nombre de usuario SSH y “servername” por la dirección IP o el nombre de host del servidor remoto. Cuando inicies el comando, se te pedirá que introduzcas tu contraseña SSH, a menos que estés utilizando SSH key para la autenticación.

powershell-ssh-login.png
Introduce la contraseña SSH

Paso 6. Trabaja en la sesión SSH

Una vez que hayas establecido una conexión SSH, podrás ejecutar comandos en el servidor remoto como si estuvieras conectado físicamente al servidor. Para finalizar la sesión SSH y volver al PowerShell local, puedes utilizar el comando exit.

Existe una serie de comandos SSH en PowerShell. El comando pwd significa “print working directory” y muestra el directorio de trabajo actual, por ejemplo:

powershell-ssh-commands-example.png
Ejemplo de comandos SSH en PowerShell

Aquí tienes una lista de comandos que puedes utilizar en PowerShell SSH:

  • ls/dir: muestra el contenido de un directorio
  • cd: cambia el directorio en el servidor remoto
  • touch/New-Item: crea un nuevo archivo
  • rm/Remove-Item: elimina archivos o directorios
  • mv/Move-Item: mueve o renombra archivos y directorios
  • useradd: añade un usuario
  • scp: transfiere archivos entre el cliente y el servidor

Encontrarás más comandos en nuestro artículo sobre comandos de PowerShell.

¿Le ha resultado útil este artículo?
Page top