Com o PowerShell SSH, pode aceder e gerir sistemas remotos a partir de pra­ti­ca­mente qualquer lugar. O SSH também oferece fun­ci­o­na­li­da­des de registo de­ta­lha­das que permitem uma su­per­vi­são e um acom­pa­nha­mento exaus­ti­vos das ati­vi­da­des no servidor.

Re­qui­si­tos para utilizar o PowerShell SSH

A in­te­gra­ção do SSH no Windows PowerShell permite-lhe es­ta­be­le­cer ligações SSH a sistemas remotos e executar comandos SSH num script do PowerShell. Isto facilita a gestão e a au­to­ma­ti­za­ção de tarefas em in­fra­es­tru­tu­ras de TI dis­tri­buí­das, es­pe­ci­al­mente num ambiente he­te­ro­gé­neo onde coexistem sistemas Windows e não Windows.

Para utilizar o PowerShell SSH, é ne­ces­sá­rio cumprir os seguintes re­qui­si­tos:

  • Instalar o PowerShell: cer­ti­fi­que-se de que o PowerShell v6+ está instalado no seu com­pu­ta­dor local. O PowerShell ge­ral­mente vem pré-instalado no Windows, mas deve verificar se está a utilizar uma versão com­pa­tí­vel com SSH.
  • Cliente SSH: necessita de um cliente SSH no seu ambiente PowerShell para es­ta­be­le­cer ligações SSH. No Windows 10/11 e no Windows Server 2019, o OpenSSH está dis­po­ní­vel por pre­de­fi­ni­ção. Se utilizar uma versão anterior do Windows, poderá ter de instalar o OpenSSH ma­nu­al­mente.
  • Servidor SSH: o servidor SSH é o servidor de destino ao qual se deve ligar. Pode ser um servidor Linux, um dis­po­si­tivo de rede ou outro host com ca­pa­ci­dade SSH.
  • Acesso à rede: o seu com­pu­ta­dor local deve ter acesso à rede e ser capaz de alcançar o servidor SSH remoto. A porta 22 deve estar aberta para SSH nas regras da firewall.
  • Módulos PowerShell: existem módulos do PowerShell que foram de­sen­vol­vi­dos es­pe­ci­fi­ca­mente para a uti­li­za­ção do SSH, como o módulo “PSSession” ou “Posh-SSH”. Deve verificar se o módulo cor­res­pon­dente está instalado no seu sistema para poder utilizar a fun­ci­o­na­li­dade SSH no PowerShell.
  • Direitos: necessita de direitos de ad­mi­nis­tra­dor ou per­mis­sões alargadas e de uma palavra-passe ou chave SSH para es­ta­be­le­cer ligações SSH a partir do seu com­pu­ta­dor local e aceder ao servidor remoto.

Como utilizar o PowerShell SSH passo a passo

Antes de poder utilizar o Secure Shell (SSH) no PowerShell, é ne­ces­sá­rio con­fi­gu­rar o servidor OpenSSH. Depois, poderá iniciar a sessão SSH no PowerShell e executar comandos no sistema remoto.

Passo 1. Instale o OpenSSH

Clique no menu Iniciar ou digite «PowerShell» na barra de pesquisa. Selecione «Executar como ad­mi­nis­tra­dor». O Windows PowerShell será aberto. Pode utilizar o seguinte comando do PowerShell para instalar o OpenSSH no seu com­pu­ta­dor Windows:

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

Passo 2. Inicie o serviço OpenSSH

Assim que a ins­ta­la­ção estiver concluída, poderá iniciar o serviço OpenSSH:

Start-Service sshd
powershell

Podes verificar se o serviço OpenSSH está a ser executado:

Get-Service sshd
powershell

O estado «Running» indica que o sshd está a ser executado cor­re­ta­mente.

Imagem: Servicio de servidor SSH PowerShell
Get-Service sshd comprueba la ejecución del servicio SSH.

Passo 3. Inicie au­to­ma­ti­ca­mente o serviço do servidor SSH

Para ativar o serviço do servidor OpenSSH sempre que o Windows for iniciado, pode in­tro­du­zir o seguinte comando:

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

Passo 4. Configure o firewall

Se o firewall do Windows estiver ativo, deve adicionar uma regra para permitir o tráfego SSH na porta 22 (a porta SSH pre­de­fi­nida).

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

Passo 5. Es­ta­be­leça uma ligação SSH

Agora poderá iniciar sessão no seu servidor SSH a partir de outro dis­po­si­tivo. Para tal, abra o PowerShell no seu com­pu­ta­dor cliente e introduza o comando SSH com o nome de uti­li­za­dor e o endereço do servidor.

ssh username@servername
powershell

Substitua «username» pelo seu nome de uti­li­za­dor SSH e «ser­ver­name» pelo endereço IP ou nome de host do servidor remoto. Ao executar o comando, ser-lhe-á pedido que introduza a sua palavra-passe SSH, a menos que esteja a utilizar uma chave SSH para a au­ten­ti­ca­ção.

Imagem: Inicia sesión en PowerShell SSH
Introduce la con­tra­seña SSH

Passo 6. Trabalhe na sessão SSH

Depois de es­ta­be­le­cer uma ligação SSH, poderá executar comandos no servidor remoto como se estivesse fi­si­ca­mente ligado ao servidor. Para encerrar a sessão SSH e regressar ao PowerShell local, pode utilizar o comando exit.

Existe uma série de comandos SSH no PowerShell. O comando pwd significa «print working directory» e mostra o diretório de trabalho atual, por exemplo:

Imagem: Comandos SSH PowerShell utilizando PWD como ejemplo
Ejemplo de comandos SSH en PowerShell

Aqui está uma lista de comandos que podes utilizar no PowerShell SSH:

  • ls/dir: mostra o conteúdo de um diretório
  • cd: muda o diretório no servidor remoto
  • touch/New-Item: cria um novo ficheiro
  • rm/Remove-Item: elimina ficheiros ou di­re­tó­rios
  • mv/Move-Item: move ou renomeia ficheiros e di­re­tó­rios
  • useradd: adiciona um uti­li­za­dor
  • scp: transfere ficheiros entre o cliente e o servidor

En­con­trará mais comandos no nosso artigo sobre comandos do PowerShell.

Ir para o menu principal