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.
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
powershellPaso 2. Inicia el servicio OpenSSH
Una vez finalizada la instalación, podrás iniciar el servicio OpenSSH:
Start-Service sshd
powershellPuedes comprobar si el servicio OpenSSH se está ejecutando:
Get-Service sshd
powershellEl estado Running indica que sshd se está ejecutando correctamente.
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'
powershellPaso 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
powershellPaso 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
powershellSustituye “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.
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:
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.